Just for fun a different input syntax.
Code
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.geometric}
\tikzset{
hexa setup/.style 2 args={
x=(#2:.86602540378*#1), y=(60+#2:.86602540378*#1),
hexa node/.style={
shape=regular polygon, regular polygon sides=6, draw,
rotate=30+#2, minimum size=#1, inner sep=+0pt},
Hexa/.style={/tikz/insert path={node[hexa node,##1]{}}}},
hexa/.code=\pgfqkeys{/tikz/hexa}{#1},
hexa={
h/.style={/tikz/Hexa},0/.style={/tikz/Hexa},
/utils/temp/.style args={#1/#2/#3}{#1/.style={
/tikz/insert path={-- ++(#2,#3)},/tikz/Hexa}},
/utils/temp/.list={1/1/0, 2/0/1, 3/-1/1, 4/-1/0, 5/0/-1, 6/1/-1}}}
\begin{document}
\begin{tikzpicture}[hexa setup={1cm}{0}]
\draw[help lines] foreach \dir in {1,...,6}{(0,0) [hexa/\dir] node{\dir}};
\draw[inner sep=0pt, <->] (0,1) -- (0,0) -- (1,0);
\end{tikzpicture}
\tikz[hexa setup={1cm}{30}]\path[hexa={h,5,5}];
\tikz[hexa setup={1cm}{45}]\path[hexa={h,1,2}];
\tikz[hexa setup={1cm}{ 0}]\path[hexa={h,1,3}];
\end{document}
Output
