Unity3d transform.LookAt和Quaternion.LookRotation正在翻转实体';什么时候看?

Unity3d transform.LookAt和Quaternion.LookRotation正在翻转实体';什么时候看?,unity3d,Unity3d,我需要帮助,请,身体是翻转,即使它是看球员,我希望它是在正确的旋转时,看 这是我的密码!: Vector3 direction = Player.position - transform.position; Quaternion rotation = Quaternion.LookRotation(direction); transform.rotation = rotation; 你也可以看我的视频,这样我就可以给你解释清楚了! 请帮忙 请看 API中描述的

我需要帮助,请,身体是翻转,即使它是看球员,我希望它是在正确的旋转时,看

这是我的密码!:

Vector3 direction = Player.position - transform.position;
        Quaternion rotation = Quaternion.LookRotation(direction);
        transform.rotation = rotation;
你也可以看我的视频,这样我就可以给你解释清楚了! 请帮忙


请看

API中描述的这两种方法都将旋转对象,使其向前向量指向目标。。。您的三维模型似乎“错误”,并且默认情况下其正向(Z)向量没有指向前方

如果我在视频中查看你的模型,我可以在旋转Gizmo中看到默认情况下你的模型是旋转的

看起来向前(Z)向量指向上,其右(X)向量指向前,其上(Y)向量指向左

这意味着为了正确定向,需要在局部X轴上额外旋转-90°,在局部Z轴上额外旋转-90°

您可以通过添加所需的旋转来修复此问题,以再次使对象直立,而不是像

transform.LookAt(Player.position);

transform.localRotation *= Quaternion.Euler(-90, 0, -90);

waitt我非常感谢你的想法,它确实帮助我从你的建议中调整了一些东西:)。。。矢量3方向=新矢量3(Player.position.x,transform.position.y,Player.position.z);变换。注视(方向);transform.rotation*=四元数.Euler(-80,0,-80);这是我修改过的代码,我在理解四元数的lookat和lookrotation方面有点困难,但是谢谢:)谢谢!顺便说一句,Vector3是一个
struct
,因此您可以简单地使用
Vector3 direction=Player.position;)不需要通过构造函数