我正在开发一款自动跳跃的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;
}
}
}
当玩家击中地球时,有人会给我脚本,玩家会跳吗?我想向右移动。
答案 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);
}
}
我希望它有效。