Unity3D Android - 将角色移动到特定的x位置

时间:2014-05-31 14:57:03

标签: android unity3d position

我正在制作一款适用于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。

1 个答案:

答案 0 :(得分:0)

我可能没理解你的问题,但这就是我认为你想要的。

我认为你希望玩家直接跳起来,所以这里是代码:

if (Input.anyKeyDown && IsGrounded()) {
    rigidbody.AddForce(Vector3.up * jumpSpeed, ForceMode.Impulse);
}

如果您确实希望播放器向右跳(如视频中所示),您可以更改" up"在Vector3.up中你想要的任何方向(即右,左,下)。

如果这没有帮助,您是否可以提供有关所需行为的更多详细信息?