拖拽以及常用的鼠标事件

// 调用Unity的鼠标拖拽函数
IEnumerator OnMouseDrag()
{
// 获取目标对象当前的世界坐标系位置,并将其转换为屏幕坐标系的点
Vector3 Pos = Camera.main.WorldToScreenPoint(transform.position);
// 设置鼠标的屏幕坐标向量,用上面获得的Pos的z轴数据作为鼠标的z轴数据,使鼠标坐标
// 与目标对象坐标处于同一层面上
Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Pos.z);
// 用上面获取到的鼠标坐标转换为世界坐标系的点,并用其设置目标对象的当前位置
transform.position = Camera.main.ScreenToWorldPoint(mousePos);
// 等待下一帧对数据进行更新,实现目标对象的位移
yield return new WaitForFixedUpdate();
}
using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
        
	}

    //void OnMouseEnter()
    //{
    //    print("当鼠标进入到GUIElement(GUI元素)或Collider(碰撞体)中时调用OnMouseEnter。");
    //}

    //void OnMouseOver()
    //{
    //    print("当鼠标悬浮在GUIElement(GUI元素)或Collider(碰撞体)上时调用 OnMouseOver .");
    //}

    //void OnMouseExit()
    //{
    //    print("当鼠标移出GUIElement(GUI元素)或Collider(碰撞体)上时调用OnMouseExit。");
    //}

    //void OnMouseDown()
    //{
    //    print("当鼠标在GUIElement(GUI元素)或Collider(碰撞体)上点击时调用OnMouseDown。");
    //}

    //void OnMouseUp()
    //{
    //    print("当用户释放鼠标按钮时调用OnMouseUp。");
    //}

    //void OnMouseUpAsButton()
    //{
    //    print("OnMouseUpAsButton只有当鼠标在同一个GUIElement或Collider按下,在释放时调用。");
    //}

    void OnMouseDrag()
    {
        Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);   // // 获取目标对象当前的世界坐标系位置,并将其转换为屏幕坐标系的点
        // 设置鼠标的屏幕坐标向量,用上面获得的Pos的z轴数据作为鼠标的z轴数据,使鼠标坐标 // 与目标对象坐标处于同一层面上
        Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, pos.z);
        // 用上面获取到的鼠标坐标转换为世界坐标系的点,并用其设置目标对象的当前位置
        transform.position = Camera.main.ScreenToWorldPoint(mousePos);
    }

}
原文地址:https://www.cnblogs.com/android-blogs/p/6344054.html