Unity LookAt()函数表现得很奇怪

时间:2015-05-11 04:43:32

标签: c# unity3d 3d transform

所以当我注意到LookAt()函数表现奇怪时,我在我的游戏中测试2D精灵。当我注意到图像看起来不正确的时候,我正用精灵指向相机以实现平面外观 我使用的精灵看起来像这样(在M​​SPaint中30秒)
enter image description here

这就是编辑器中的样子

enter image description here

然而,当我运行它时,精灵似乎在寻找与摄像机本身无关的其他奇怪方向。

enter image description here

我刚使用标准的LookAt函数,将z值设置为transform.position.z以限制它看待事物的方式(这不是问题,因为将其设置为obj.transform.z我有一个同样错误的转型。

using UnityEngine;
using System.Collections;


public Transform obj;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
    transform.LookAt (new Vector3( obj.position.x, obj.position.y, transform.position.z), Vector3.up);
}

如果有人愿意给我一些如何解决这个问题的建议,那就太棒了!

1 个答案:

答案 0 :(得分:0)

我认为如果相机没有与Sprite的旋转匹配的旋转,则可能会出现此问题。如果你用于相机:

transform.LookAt(yourSprite.transform.position, Vector3.up);

和精灵:

transform.LookAt(yourCamera.transform.position, Vector3.up);

他们彼此都会“LookAt”。

如果你不能/不想旋转相机,精灵必须匹配相机旋转,而不是“LookAt”相机位置。这一切都取决于相机的旋转,以及你想要实现的目标。