联合输入在团结游戏中效果不佳

时间:2017-05-14 06:47:26

标签: c# unity3d unity5

我用太空船做了太空射击游戏,我想用手指移动。

我附上了下面的脚本,但是效果不好。在开始时,船只通过手指移动正常移动,但随着时间的推移,宇宙飞船开始对甚至轻微的手指移动做出非常快速的反应。

[System.Serializable]
public class Boundary
{
public float xMin, xMax, zMin, zMax;
 }


public class Playercontroller : MonoBehaviour {
public Rigidbody rb;
public float speed;
public Boundary boundary;
public GameObject shot;
public Transform shotSpawn;
public float fireRate;
private float nextFire;

void Update(){

    if(Input.GetButton("Fire1") && Time.time>nextFire)
    {
        nextFire = Time.time + fireRate;
        //GameObject clone=
        Instantiate(shot, shotSpawn.position, shotSpawn.rotation);
        AudioSource audio = GetComponent<AudioSource> ();
        audio.Play ();


}
}


void FixedUpdate () {
    rb = GetComponent<Rigidbody> ();
    float moveHorizontal = Input.GetAxis ("Horizontal");
    float moveVertical = Input.GetAxis ("Vertical");
    if (Input.touchCount >0) {
        moveHorizontal = Input.touches [0].deltaPosition.x;
        moveVertical = Input.touches [0].deltaPosition.y;

        Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
        rb.velocity = movement * speed;

        /*  if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) {
            Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
            transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0);
        }

    */

        rb.position = new Vector3 (
            Mathf.Clamp (rb.position.x, boundary.xMin, boundary.xMax),
            0.0f,
            Mathf.Clamp (rb.position.z, boundary.zMin, boundary.zMax)

        );

    }
}
}

0 个答案:

没有答案