【问题标题】:Unity3D moving with Character ControllerUnity3D 与角色控制器一起移动
【发布时间】:2013-08-20 09:53:50
【问题描述】:

我有一个实现了角色控制器组件的胶囊。要移动它,我正在使用:

public float player_speed=0.6f;
if(Input.GetKey(KeyCode.W)){
    this.GetComponent<CharacterController>().Move(new Vector3(transform.forward.x*player_speed,0f,transform.forward.z*player_speed));
}

但是当我将player_speed 的值设置为 0.3f 时,它开始飞行。我不知道为什么。 有人可以向我解释一下吗?

【问题讨论】:

标签: unity3d game-physics


【解决方案1】:

角色控制器不会自动添加重力,因此您需要自己实现。最简单的方法通常是在角色接地时将重力保持在 0(或较小的数字),然后如果他没有接地,则逐渐增加重力强度(最大)。

【讨论】:

  • 我偷偷地怀疑 OP 实际上并不意味着“飞行”,而是控制器以令人难以置信的速度移动。我想说的是没有考虑到 deltaTime。
  • Nvm,感谢您帮助我解决了我遇到的问题。 PS:我已经实现了重力。
  • 如果你解决了这个问题,也许可以添加一个关于你是如何做到的答案@user2377766。
猜你喜欢
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 2016-05-17
  • 1970-01-01
  • 2020-10-29
相关资源
最近更新 更多