父动画正在影响主摄像机旋转(是小孩)Unity

时间:2015-02-28 14:10:42

标签: c# unity3d

我已经开发了一个统一的转轮游戏,我已经完成了编码部分,但是当我将动画应用到我的角色对象(在z轴上旋转)时,相机也随之旋转。 那么,我怎么能停止主旋翼对象的主旋转主旋转。另外我不希望主摄像头的旋转发生任何变化

主摄像机转换: -

  • 初始位置为(3,13,-28)。
  • 初始轮换是(20,0,0)。
  • 初始比例为(0,0,0)。

我在一个单独的脚本中尝试过的一些代码将它附加到主摄像头: -

  1. transform.parent = null;
  2. Camera.main.transform.rotation = Quaternion.identity;
  3. Camera.main.transform.eulerAngles = new Vector3(20,0f,0f);
  4. distanceTraveled1 = new Vector3(runnercode.distanceTraveled,0f,0f);
  5. Camera.main.transform.eulerAngles = new Vector3(runnercode.distanceTraveled,0f,0f);(有效,但轮换总是有变化)
  6. 任何解决方案?我使用C#scripting

1 个答案:

答案 0 :(得分:0)

如果您想确保在渲染帧之前更正旋转,则代码需要位于LateUpdate。但是你考虑过制作一个单独的“FollowObject”脚本,这样相机就不需要成为子对象吗?您也可以找到它的其他用途。因为除了位置之外你真的不想要父/子关系的任何其他语义。

我不认为你的方向代码是对的。您将距离视为一个角度。 eulerAngles指的是度x / y / z,而不是方向向量。要使用方向向量,您可以指定transform.forward = direction;。你究竟想看什么方向?走向什么?每帧相同(任意)方向? transform.LookAt()transform.rotation = storedRotation是解决这些问题的简单方法。

编辑:为了完全清楚,我认为将相机连接到角色是一个坏主意。你可能会遇到生涩的运动和不正确的位置问题。