【发布时间】:2018-02-25 17:03:42
【问题描述】:
所以我现在正在研究我的角色的跳跃,我已经按照我的意愿进行跳跃,除了它不检查地面。我可以轻松地创建一个在与标记为地面的对象发生碰撞时变为真假的布尔值,但我想使用“字符控制器”组件来实现,因为我想将它用于其他功能。
但是当我添加角色控制器时,我第二次移动我的玩家,他以大约 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");
}
}
我也非常希望我的角色能在空中保持动量,这样我在空中时就不能轻易转身,而是继续朝着我跳跃的方向移动。
【问题讨论】:
-
update应该是Update。可能是你这边的错字...... -
@Programmer 这只是我在stackoverflow上发布时的一个错字,而不是脚本本身:-)
-
好的。我不确定。始终尝试复制和发布您的代码,否则您将使用不同的脚本来显示与您的实际问题无关的另一个或不相关的问题。你有什么问题?你想用 Character Controller 跳跃吗?
-
我想稍后添加跳墙功能,为此我想使用一种使用角色控制器的方法。但是当我现在添加角色控制器时,我的玩家会飞起来,我不知道为什么......