天天看點

Unity3D 觸摸拖拽效果

using UnityEngine;
using System.Collections;

public class DragScript : MonoBehaviour {

    void Start () {

    }
    Vector3 screenSpace;
    Vector3 offset;
    void Update () {

    }

    void OnMouseDown()
    {
        screenSpace = Camera.main.WorldToScreenPoint(transform.position);
        offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,screenSpace.z));
    }

    void OnMouseDrag()
    {
        Vector3 curScreenSpace = new Vector3(Input.mousePosition.x,Input.mousePosition.y,screenSpace.z);
        Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace)+offset;
        transform.position = curPosition;
    }
}