所以当我注意到LookAt()函数表现奇怪时,我在我的游戏中测试2D精灵。当我注意到图像看起来不正确的时候,我正用精灵指向相机以实现平面外观
我使用的精灵看起来像这样(在MSPaint中30秒)
这就是编辑器中的样子
然而,当我运行它时,精灵似乎在寻找与摄像机本身无关的其他奇怪方向。
我刚使用标准的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);
}
如果有人愿意给我一些如何解决这个问题的建议,那就太棒了!
答案 0 :(得分:0)
我认为如果相机没有与Sprite的旋转匹配的旋转,则可能会出现此问题。如果你用于相机:
transform.LookAt(yourSprite.transform.position, Vector3.up);
和精灵:
transform.LookAt(yourCamera.transform.position, Vector3.up);
他们彼此都会“LookAt”。
如果你不能/不想旋转相机,精灵必须匹配相机旋转,而不是“LookAt”相机位置。这一切都取决于相机的旋转,以及你想要实现的目标。