自动跳转脚本

时间:2015-03-12 22:51:21

标签: c# unity3d infinite

我正在开发一款自动跳跃的2D游戏(智能手机),我想给玩家一个动作(加速度计)(与涂鸦跳跃类似的原理)。如何自动跳转2D精灵?我试图创建一个动画,但它不会使用加速度计移动。所以我编写了自动跳转脚本,但它没有工作。任何帮助? (自动跳跃意味着当玩家击中地面,再次跳跃时)

public float speed = 6.0F;
public float jumpSpeed = 8.0F;
public float gravity = 20.0F;
private Vector3 moveDirection = Vector3.zero;
Rigidbody2D coll;

void Start(){
    coll = GetComponent<Rigidbody2D>();
}
void Update() {
    if (coll.gameObject.tag == "Ground") {
        moveDirection = Vector3.zero;
        moveDirection.x = 1;
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;

    }

}

}

当玩家击中地球时,有人会给我脚本,玩家会跳吗?我想向右移动。

1 个答案:

答案 0 :(得分:1)

Player对象应该有collider2D和rigidbody2D。地面物体应该有collider2D和&#34;地面&#34;标签。此代码必须在播放器对象上。

public int power;

void Update()
{
    transform.position = new Vector3(transform.position.x + Input.acceleration.x, transform.position.y, transform.position.z);
}

void OnCollisionEnter2D(Collision2D col)
{
    if (col.collider.gameObject.tag.Equals("Ground"))
    {
        rigidbody2D.AddForce(Vector2.up * power);
    }
}

我希望它有效。