我正在为移动设备制作2D平台游戏。我有一个guiTexture,当按下时,让我的精灵跳跃。但每当我按下guiTexture时,精灵每次都会跳到不同的高度,这取决于我按住按钮还是轻轻按下它。
以下是我使用的跳转脚本:
using UnityEngine;
using System.Collections;
public class Jump : MonoBehaviour {
public GUITexture jumpButton;
bool grounded = false;
public Transform groundCheck;
float groundRadius = 0.2f;
public LayerMask whatIsGround;
public float jumpForce = 700f;
public GameObject character;
void Start () {
}
void Update () {
}
void FixedUpdate () {
grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
if (grounded && jumpButton.HitTest(Input.GetTouch(0).position)) {
rigidbody2D.AddForce(new Vector2(0, jumpForce));
}
}
}
答案 0 :(得分:0)
如果触摸失败,请使用if语句检查触摸阶段,然后触摸时只触发一次
if (grounded && jumpButton.HitTest(Input.GetTouch(0).position) && Input.GetTouch(0).phase == TouchPhase.Began) {
rigidbody2D.AddForce(new Vector2(0, jumpForce));
}