unity鼠标拖动三维物体

转载 2015年07月08日 15:33:02

鼠标拖动三维物体移动

 private Vector3 _vec3TargetScreenSpace;// 目标物体的屏幕空间坐标

 private Vector3 _vec3TargetWorldSpace;// 目标物体的世界空间坐标

 private Transform _trans;// 目标物体的空间变换组件

 private Vector3 _vec3MouseScreenSpace;// 鼠标的屏幕空间坐标

 private Vector3 _vec3Offset;// 偏移

 void Awake( ) { 

_trans = transform; 

 IEnumerator OnMouseDown( ) 

 

        { 

                // 把目标物体的世界空间坐标转换到它自身的屏幕空间坐标 

                _vec3TargetScreenSpace = Camera.main.WorldToScreenPoint(_trans.position);

                // 存储鼠标的屏幕空间坐标(Z值使用目标物体的屏幕空间坐标) 

                _vec3MouseScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, _vec3TargetScreenSpace.z);

                // 计算目标物体与鼠标物体在世界空间中的偏移量 

                _vec3Offset = _trans.position - Camera.main.ScreenToWorldPoint(_vec3MouseScreenSpace);

                // 鼠标左键按下 

                while ( Input.GetMouseButton(0) ) {

                    // 存储鼠标的屏幕空间坐标(Z值使用目标物体的屏幕空间坐标)

                       _vec3MouseScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, _vec3TargetScreenSpace.z);

                   // 把鼠标的屏幕空间坐标转换到世界空间坐标(Z值使用目标物体的屏幕空间坐标),加上偏移量,以此作为目标物体的世界空间坐标

                      _vec3TargetWorldSpace = Camera.main.ScreenToWorldPoint(_vec3MouseScreenSpace) + _vec3Offset;              

                  // 更新目标物体的世界空间坐标 

                     _trans.position = _vec3TargetWorldSpace;

                 // 等待固定更新 

                    yield return new WaitForFixedUpdate();

                } 

        }

 

 

 

                                                              

 

 

 

 

 

 

 

 

unity3D C#脚本实现鼠标拖动物体

using System.Collections; public class clickmove : MonoBehaviour { // Use this for initializa...
  • tc1hen
  • tc1hen
  • 2013年01月02日 20:26
  • 23320

Unity中鼠标左键按下,拖拽物体移动

把这段脚本拖给想要拖拽的物体,然后加上碰撞盒就可以了。   private Vector3 _vec3TargetScreenSpace;// 目标物体的屏幕空间坐标 private V...
  • Haohan_Meng
  • Haohan_Meng
  • 2014年01月20日 14:23
  • 38299

<Unity>鼠标拖动物体、按下鼠标左键旋转观察物体、鼠标滚轮缩放视野

unity鼠标拖动物体,鼠标缩放视野,控制旋转物体
  • sinat_27456831
  • sinat_27456831
  • 2015年10月23日 22:08
  • 3256

unity3d用鼠标拖动物体的代码

这是一段拖动物体的代码,比较简洁明了,对了解unity3d脚本概念有些帮助!在此加上注释分享! var mouseOverColor = Color.blue;//声明变量为蓝色 privat...
  • nnsword
  • nnsword
  • 2013年03月26日 11:01
  • 3682

unity3d用鼠标拖动物体的一段代码

这是一段拖动物体的代码,比较简洁明了,对了解unity3d脚本概念有些帮助!在此加上注释分享! var mouseOverColor = Color.blue;//声明变量为蓝色 private va...
  • andyhebear
  • andyhebear
  • 2016年01月22日 10:51
  • 627

Unity2D中使用鼠标拖动物体移动

昨天用unity开发了一个微信的飞机大战,效果图如下。期间遇到了很多问题都一一解决了,印象最深的问题就是如何用鼠标拖动飞机的移动。今天我就把我的方法拿出来分享。 我的方法是在飞机物体中写...
  • u011185231
  • u011185231
  • 2015年11月20日 16:50
  • 3613

unity3D C#脚本实现鼠标拖动物体

using System.Collections; public class clickmove : MonoBehaviour { // Use this for initializatio...
  • jamesgary2013
  • jamesgary2013
  • 2014年12月27日 11:06
  • 350

unity3d用鼠标拖动物体的一段代码

这是一段拖动物体的代码,比较简洁明了,对了解unity3d脚本概念有些帮助!在此加上注释分享! 02varmouseOverColor = Color.blue;//声明变量为蓝色 03private...
  • luckcool
  • luckcool
  • 2011年04月03日 23:10
  • 812

unity3D C#脚本实现鼠标拖动物体

using System.Collections; public class clickmove : MonoBehaviour { // Use this for initializa...
  • tc1hen
  • tc1hen
  • 2013年01月02日 20:26
  • 23320

UGUI實現鼠標旋轉三維物體的Demo

  • 2016年09月24日 10:47
  • 8.05MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:unity鼠标拖动三维物体
举报原因:
原因补充:

(最多只允许输入30个字)