所以我现在正在努力跳跃我的角色,我已经按照我想要的方式进行了跳跃工作,除了它没有检查地面。我可以轻松地制作一个与物体标记的地面碰撞时真实和虚假的布尔,但我想用"字符控制器"组件,因为我想将它用于其他功能。
但是当我添加角色控制器时,第二个我移动我的玩家,他以大约100000公里/小时的速度飞行......
我该如何避免这种情况?有人可以修复我的脚本,并解释它为什么会发生的思维过程吗?
跳过我脚本的一部分:
void update () {
if (rb.velocity.y < 0) {
rb.velocity += Vector3.up * Physics.gravity.y * (fallMultiplier - 1) * Time.deltaTime;
} else if (rb.velocity.y > 0 && !Input.GetButton ("Jump")) {
rb.velocity += Vector3.up * Physics.gravity.y * (lowJumpMultiplier - 1) * Time.deltaTime;
}
//Hoppe funktionen
if (Input.GetButtonDown("Jump")) {
GetComponent<Rigidbody> ().velocity = Vector3.up * jumpForce;
//Debug til hop
//Debug.Log("Surface is jumpable");
}
}
另外我真的很想如果我的角色会保持空气中的动力,所以我在空中时不能轻易转动,而是继续向我跳跃的方向移动。
答案 0 :(得分:0)
根据你的说法,我假设您正在显示的代码是工作代码,而字符控制器脚本的添加是错误的吗?
飞行&#39; bug很常见,可以是很多东西。检查以下内容:
我可以很轻松地制作一个真实的布尔,并且在碰撞时是假的 一个对象标记的地面,但我想用&#34;字符做 控制器&#34;组件,因为我想用它来做其他的 特征
为什么不在Character Controller本身中执行此操作?