Transform.LookAt Bug

时间:2015-11-13 09:34:09

标签: c# unity3d transform

当我使用transform.LookAt();

时,我的游戏给了我一个错误

以下是屏幕截图:http://imgur.com/pMnPVpk

我有一辆在地面上的汽车,但是它让它站在了最后。

代码:

void Update () 
{
    if(Vector3.Distance(Player.transform.position,transform.position)< MaxDistnace)
    {
        transform.LookAt(PlayerTransform);
    }
}

1 个答案:

答案 0 :(得分:1)

您的问题与您的汽车创建方式有关。 LookAt()只会使对象面向目标,无论它在哪个轴上。

修复它的快速方法 (不一定是最好的)是创建一个空的GameObject并使汽车成为空GameObject的子项。

然后将车辆向任意方向旋转90度。如果汽车以错误的方式向前旋转90度,则向后旋转90度。

从汽车中删除脚本并将其添加到空GameObject。

再次查看您的代码,或许在上面的内容之前要尝试一些事情:

transform.LookAt(PlayerTransform)应该是Player.transform,除非您创建了一个名为PlayerTransform的变量。

将您的MaxDistnace重命名为maxDistance这是更好的编码习惯。

希望它有所帮助!

编辑或者,您的播放器可能位于您的汽车正上方,这就是汽车朝上的原因!将你的玩家放在与你的汽车相同的水平,看看是否也有所不同!