我在弄清楚如何调整模型方向时遇到了很多麻烦。当我遇到使角色沿运动方向旋转的麻烦时,我注意到了这个问题。在对类似LookAt()的函数进行了大量试验和错误之后,我意识到这是因为角色的z轴(正向向量)未面向角色的相同正向。在Blender中纠正此问题后,我将其导入Unity和walah,z轴与角色的方向相同。但是当我玩游戏并且动画开始时,z轴再次指向错误的方向!知道Unity为什么要这样做吗?仅供参考,我在Blender中为3d对象建模。
开始游戏之前(字符面向z轴)
答案 0 :(得分:0)
如果在开始游戏时修改了场景,则可以假定这是您创建的逻辑(可能是脚本)会影响游戏对象。
就像评论中所建议的那样,请尝试禁用游戏对象上的脚本组件,以查看导致该错误的原因。
有时,您可能希望在编辑器场景中使用此逻辑,以便即使在使用场景时,对象也以游戏开始时的样子旋转。
想象一下,有一个自上而下的游戏,其摄像机跟随玩家并始终向玩家旋转。您希望该摄像机在四处移动时会朝播放器旋转,然后重新排列以使其具有理想的角度。为此,您可以使用[ExecuteInEditMode]:
[ExecuteInEditMode]
public class LookAtPlayer {
Transform player;
void Update() {
this.transform.LookAt(player);
}
}
答案 1 :(得分:0)
如果在创建动画后重新导入模型并调整了X / Y / Z轴,则很可能是动画使用了错误的Axis。
您可以将动画的值复制到正确的轴上,或者如果动画不是很复杂,我建议您从头开始重新创建动画。