我已经开发了一个统一的转轮游戏,我已经完成了编码部分,但是当我将动画应用到我的角色对象(在z轴上旋转)时,相机也随之旋转 . 那么,我怎么能停止主旋翼对象的主旋转主旋转 . 还 i don't want any change in rotation of Main Camera
主摄像头转换: -
-
初始位置是(3,13,-28) .
-
初始轮换是(20,0,0) .
-
初始比例为(0,0,0) .
我在一个单独的脚本中尝试过的一些代码将它附加到主摄像头: -
-
transform.parent = null;
-
Camera.main.transform.rotation = Quaternion.identity;
-
Camera.main.transform.eulerAngles = new Vector3(20,0f,0f);
-
distanceTraveled1 = new Vector3(runnercode.distanceTraveled,0f,0f);
-
Camera.main.transform.eulerAngles = new Vector3(runnercode.distanceTraveled,0f,0f);(有效,但旋转总是在变化)
有解决方案吗我使用C#脚本
1 回答
如果要确保在渲染帧之前更正旋转,则代码需要在
LateUpdate
中 . 但是你有没有考虑制作一个单独的"FollowObject"脚本,因此除了位置之外,相机不需要父/子关系的任何其他语义 .我不认为你的方向代码是对的 . 您将距离视为一个角度 .
eulerAngles
指的是度x / y / z,而不是方向向量 . 要使用方向向量,您可以指定transform.forward = direction;
. 你究竟想看什么方向?走向什么?每帧相同(任意)方向?transform.LookAt()
和transform.rotation = storedRotation
是解决这些问题的简单方法 .编辑:为了完全清楚,我认为将相机连接到角色是一个坏主意 . 你可能会遇到生涩的运动和不正确的位置问题 .