首页 > Unity3D专栏 > 【Unity3D】鼠标移动三维物体
2017
07-25

【Unity3D】鼠标移动三维物体

创建一个脚本,如下:

using UnityEngine;  
using System.Collections;    
public class OnMouse : MonoBehaviour {    
    IEnumerator OnMouseDown()  
    {  
        Vector3 screenSpace = Camera.main.WorldToScreenPoint(transform.position);//三维物体坐标转屏幕坐标  
        //将鼠标屏幕坐标转为三维坐标,再算出物体位置与鼠标之间的距离  
        Vector3 offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z));  
        print("down");  
        while (Input.GetMouseButton(0))  
        {  
            //print("button0");  
            Vector3 curScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);  
            Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset;  
            transform.position = new Vector3(curPosition.x, transform.position.y, transform.position.z);  
            yield return new WaitForFixedUpdate();//这个很重要,循环执行  
        }  
    }    
}  

将这个脚本赋给移动的物体就可以了



虚拟世界提醒您:如果您觉得本文不错,快快将这篇文章分享出去吧 ,感谢您的支持和关注,谢谢!
最后编辑:
作者:虚拟世界
专注互联网技术及资讯 技术研究中心|有相关Unity3D问题或者作事宜请联系我哦!
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝或者微信直接向我捐款,在此非常感谢您对虚拟世界的捐赠。

留下一个回复

你的email不会被公开。