It is an interesting elementary problem. After I while I proved the following proposition where I use $A^*$ for the adjoint of $A$.
Proposition. Let $U: H \to H$ be a bounded operator over a Hilbert space $H$. The following conditions are equivalent.
(a) For $x,y \in H$,$\quad$ $\langle x|y\rangle =0$ implies $\langle Ux|Uy\rangle =0$
(b) $U^*U = cI$ for some real $c\geq 0$.
Before proving the statement I observe that even if $c=1$, $U$ is not necessarily unitary, because unitarity is $U^*U=UU^*=I$. And here $UU^*=I$ generally fails when $H$ is infinite dimensional (otherwise it is trivially true as a consequence of $U^*U=I$). For $c=1$, $U$ is an isometry not necessarily surjective.
Proof. It is obvious that (b) implies (a), so we prove that (a) implies (b). Condition (a) can be rephrased as $y \perp x$ implies $y \perp U^*Ux$. As a consequence $U^*Ux \in \{\{x\}^\perp\}^\perp$ which is the linear span of $x$. In other words $U^*U x = \lambda_x x$ for some $\lambda_x\in \mathbb C$.
My goal is now proving that $\lambda_x$ does not depend on $x$.
To this end, consider a couple of vectors $x \perp y$ with $x, y \neq 0$. Using the argument above we have
$$U^*U x = \lambda_x x\:,\quad U^*U y = \lambda_y y\:, \quad U^*U (x+y) = \lambda_{x+y} (x+y)\:.\tag{1}$$
Linearity of $U^*U$ applied to the last identity leads to
$$U^*Ux + U^*Uy = \lambda_{x+y}x + \lambda_{x+y}y\:,$$
namely
$$U^*Ux- \lambda_{x+y}x = -(U^*Uy- \lambda_{x+y}y)\:\:.$$
Exploiting the first two identities in (1) we get
$$(\lambda_x- \lambda_{x+y})x = -(\lambda_y- \lambda_{x+y})y\:.$$
Since $x \perp y$ and $x,y \neq 0$, the only possibility is that
$$\lambda_x = \lambda_{x+y} = \lambda_y\:.$$
So a couple of orthogonal non-vanishing vectors has the same $\lambda_x$.
To conclude consider a Hilbert basis $\{x_n\}$ of $H$ so that, if $z\in H$,
$$z = \sum_n c_n x_n \tag{2}$$
for complex numbers $c_n$. Since $U^*U$ is continuous ($U$ is bounded),
$$U^*Uz = \sum_n c_n U^*Ux_n = \sum_n c_n \lambda_{x_n}x_n\tag{3}$$
But we know from the previous argument that $\lambda_{x_n} = \lambda_{x_m}$ so that, indicating with $c$ the common value of the $\lambda_{x_n}$, (3) can be rewritten as
$$U^*Uz = \sum_n c_n cx_n = c\sum_n c_n x_n = cz\:.$$
Since $z\in H$ was arbitrary, we have found that
$$U^*U=c I\:.$$
Taking the adjoint of both sides we obtain $c=\overline{c}$ so that $c$ is real. Finally,
$$0 \leq \langle Ux | Ux\rangle = \langle x| U^*U x\rangle = c \langle x| x \rangle$$
so that $c\geq 0$.
QED