【发布时间】:2017-10-11 18:37:10
【问题描述】:
您首先会注意到的是复杂而令人困惑的标题。 所以让我解释一下。
我正在尝试使用 Unity 在 3D 空间中制作 2D 游戏。我正在使用 3D 角色作为播放器。这看起来像这样:
如您所见,背景(谷歌地图)是二维的。而玩家是一个躺在地上的 3D 物体(它看起来就像是站立的一样)。
到目前为止一切正常。但我希望 3D 角色看起来像面对背景地图上的点击点。
例如:
还有两个例子:
黑色圆圈代表点击的位置。所以我完全不知道是否有办法做到这一点,或者即使有可能做到这一点。
我尝试了以下代码,但这只会使我的角色在不同的轴上旋转:
Vector3 targetDir = tapped.position - transform.position;
float step = speed * Time.deltaTime;
Vector3 newDir = Vector3.RotateTowards(transform.forward, targetDir, step, 0.0F);
transform.rotation = Quaternion.LookRotation(newDir);
有没有办法做到这一点?我目前没有想法... 如果能得到任何帮助,我将非常高兴!
【问题讨论】:
-
目标方向的y只有0。
-
@DreamsOfElectricSheep 感谢您的快速答复!但这不起作用。玩家一直“躺”在地上,以创造他会在上面行走的错觉。当我将 y 设置为零时,他突然真的站在地上 O.o
-
我认为如果你切换 y 和 z 应该会显示这种效果。如果你的目标方向是 (1,0,1),让他面对 (1,1,0)。
-
@yes 感谢您的回答!不幸的是,这也不起作用。当我点击某个地方时,角色要么在错误的轴上旋转,要么什么都不做:/.
-
是的,在我考虑了一下之后,认为它会那么容易是愚蠢的。给你贴了一个小sn-p。
标签: c# google-maps unity3d 3d 2d