开始游戏后放弃Unity旋转吗?

时间:2019-04-18 07:10:46

标签: unity3d

我在弄清楚如何调整模型方向时遇到了很多麻烦。当我遇到使角色沿运动方向旋转的麻烦时,我注意到了这个问题。在对类似LookAt()的函数进行了大量试验和错误之后,我意识到这是因为角色的z轴(正向向量)未面向角色的相同正向。在Blender中纠正此问题后,我将其导入Unity和walah,z轴与角色的方向相同。但是当我玩游戏并且动画开始时,z轴再次指向错误的方向!知道Unity为什么要这样做吗?仅供参考,我在Blender中为3d对象建模。

enter image description here

开始游戏后(字符不面向z轴): enter image description here

开始游戏之前(字符面向z轴)

2 个答案:

答案 0 :(得分:0)

如果在开始游戏时修改了场景,则可以假定这是您创建的逻辑(可能是脚本)会影响游戏对象。

就像评论中所建议的那样,请尝试禁用游戏对象上的脚本组件,以查看导致该错误的原因。


有时,您可能希望在编辑器场景中使用此逻辑,以便即使在使用场景时,对象也以游戏开始时的样子旋转。

想象一下,有一个自上而下的游戏,其摄像机跟随玩家并始终向玩家旋转。您希望该摄像机在四处移动时会朝播放器旋转,然后重新排列以使其具有理想的角度。为此,您可以使用[ExecuteInEditMode]

[ExecuteInEditMode]
public class LookAtPlayer {
    Transform player;

    void Update() {
        this.transform.LookAt(player);
    }
}

答案 1 :(得分:0)

如果在创建动画后重新导入模型并调整了X / Y / Z轴,则很可能是动画使用了错误的Axis。

您可以将动画的值复制到正确的轴上,或者如果动画不是很复杂,我建议您从头开始重新创建动画。