1. 官方建议物理的更新处理放在FixedUpdate()方法中。我不信邪放在Update()方法中处理。时间系数使用Time.deltaTime发现我在移动时仅仅是改变x轴的移动也造成了y轴的负方向移动。。很是奇怪的问题。 改为FixedUpdate()方法中Time.fixedDeltaTime才正常.
  2. 角色移动不能使用transform.localPosition来改变角色的位置,而应该使用CharacterController的Move或SimpleMove来进行角色的移动。
  3. 使用transform.localPosition是直接改变物体在世界中的位置,忽略了碰撞等等的处理,就在运行时出现了穿越地形和运行位置与预期不一致的效果。
  4. 角色使用rigidbody控制重力,则移动方法使用SimpleMove(),SimpleMove()移动不计算y轴,而Move()计算y轴
  5. SimpleMove()与Move()函数,参数为new Vector3(0,0,0)看到角色绕z轴不停旋转。参数为new Vector3(0,0,1)看到角色绕x轴不停旋转,沿z轴前进。所以在使用CharacterController时rigidBody锁定xz轴旋转。
  6. 角色跳跃,characterController会忽略rigidBody的AddForce(),所以不可使用向上添加力的方法实现跳跃,需要自定义代码实现跳跃效果。

IMAKIBA

Welcom to my blog!