我正在制作一款适用于Android的新游戏,我想将我的角色(现在是一个立方体)移动到特定的x位置(在飞行地板/地面之上)但是我已经有了一些麻烦。我一直在使用这个脚本:
var jumpSpeed: float = 3.5;
var distToGround: float;
function Start(){
// get the distance to ground
distToGround = collider.bounds.extents.y;
}
function IsGrounded(): boolean {
return Physics.Raycast(transform.position, -Vector3.up, distToGround + 0.1);
}
function Update () {
// Move the object to the right relative to the camera 1 unit/second.
transform.Translate(Vector3.forward * Time.deltaTime);
if (Input.anyKeyDown && IsGrounded()){
rigidbody.velocity.x = jumpSpeed;
}
}
这是结果(这不是我想要的):
https://www.youtube.com/watch?v=Fj8B6eI4dbE&feature=youtu.be
任何人都知道如何做到这一点?我是团结和脚本的新手。我正在使用java btw。
泰
答案 0 :(得分:0)
我可能没理解你的问题,但这就是我认为你想要的。
我认为你希望玩家直接跳起来,所以这里是代码:
if (Input.anyKeyDown && IsGrounded()) {
rigidbody.AddForce(Vector3.up * jumpSpeed, ForceMode.Impulse);
}
如果您确实希望播放器向右跳(如视频中所示),您可以更改" up"在Vector3.up中你想要的任何方向(即右,左,下)。
如果这没有帮助,您是否可以提供有关所需行为的更多详细信息?