1. 程式人生 > >Unity 螢幕觸控事件

Unity 螢幕觸控事件

該文內容摘抄整理:

移動物體:

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public float speed = 0.1F;
    void Update() {
        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);
        }
    }
}


點選碰撞克隆

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public GameObject projectile;
    void Update() {
        int i = 0;
        while (i < Input.touchCount) {
            if (Input.GetTouch(i).phase == TouchPhase.Began)
                clone = Instantiate(projectile, transform.position, transform.rotation) as GameObject;
            
            ++i;
        }
    }
}

===================

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public GameObject particle;
    void Update() {
        int i = 0;
        while (i < Input.touchCount) {
            if (Input.GetTouch(i).phase == TouchPhase.Began) {
                Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
                if (Physics.Raycast(ray))
                    Instantiate(particle, transform.position, transform.rotation) as GameObject;
                
            }
            ++i;
        }
    }
}

TouchPhaseEnumeration 

Describes phase of a finger touch.

Values
Began

A finger touched the screen.

Moved

A finger moved on the screen.

A finger is touching the screen but hasn't moved.

Ended

A finger was lifted from the screen. This is the final phase of a touch.

The system cancelled tracking for the touch, as when (for example) the user puts the device to her face or more than five touches happened simultaneously. This is the final phase of a touch.