Unity鼠标拖拽物体

<pre name="code" class="csharp">using UnityEngine;
using System;
using System.Collections;


// 创建一个Cube 将该代码拖拽给Cube然后运行,点击Cube然后拖拽Cube,
//Cube会被鼠标拖拽移动
// 注意 : 创建的 Cube 默认带有一个 Box Collider 碰撞盒, 
//如果拖拽对象上没有 碰撞盒, 则不能被检测到拖拽 
public class Test : MonoBehaviour
{
    Transform myTransform;
    Vector3 selfScenePosition;

    void Start()
    {
        myTransform = transform;
        //将自身坐标转换为屏幕坐标
        selfScenePosition = Camera.main.WorldToScreenPoint(myTransform.position); 
        print("scenePosition   :  " + selfScenePosition);
    }

    void OnMouseDrag() //鼠标拖拽时系统自动调用该方法
    {
        //获取拖拽点鼠标坐标
        print(Input.mousePosition.x + "     y  " + Input.mousePosition.y + "     z  " + Input.mousePosition.z);
        //新的屏幕点坐标
        Vector3 currentScenePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, selfScenePosition.z);
        //将屏幕坐标转换为世界坐标
        Vector3 crrrentWorldPosition = Camera.main.ScreenToWorldPoint(currentScenePosition); 
        //设置对象位置为鼠标的世界位置
        myTransform.position = crrrentWorldPosition;
    }

    void OnMouseDrag()
    {
        print("鼠标拖动该模型区域时");
    }

    void OnMouseDown()
    {
        print("鼠标按下时");
    }

    void OnMouseUp()
    {
        print("鼠标抬起时");
    }

    void OnMouseEnter()
    {
        print("鼠标进入该对象区域时");
    }

    void OnMouseExit()
    {
        print("鼠标离开该模型区域时");
    }
}



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值