unity基础开发--鼠标移动物体并判断是否移动
2015-02-02 11:43
906 查看
using UnityEngine; using System.Collections; public class Comm_MoveGameObject : MonoBehaviour { private GameObject mainCamera; public static bool moveDown=false; public static bool IsMoveGameObject=false; private Vector3 currentPos;//初始位置 // Use this for initialization void Start () { mainCamera = GameObject.Find("Main Camera"); currentPos= this.gameObject.transform.position; } IEnumerator OnMouseDown() { moveDown = true; 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)) { //屏蔽镜头旋转 mainCamera.GetComponent<MouseFollowRotation>().enabled = false; //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, curPosition.y, curPosition.z); yield return new WaitForFixedUpdate();//这个很重要,循环执行 ////对物体y进行限制 //if (transform.position.y <= limit_Y) //{ // transform.position = new Vector3(curPosition.x,limit_Y,transform.position.z); //} } } void OnMouseUp() { moveDown = false; mainCamera.GetComponent<MouseFollowRotation>().enabled = true; //IsGameMove(); } // Update is called once per frame void Update () { IsGameMove(); } /// <summary> /// 判断物体是否移动 /// </summary> void IsGameMove() { if (currentPos != this.gameObject.transform.position) { //currentPos.transform.position print("移动了"); IsMoveGameObject = true; } else { print("没有移动"); IsMoveGameObject =false; } } }脚本放在需要移动的物体上,ok
相关文章推荐
- Unity 物体跟随鼠标点击移动,判断物体是否在移动
- unity3D基础学习 通过判断鼠标点击的是否是目标物体,物体旋转,滑动滚轮缩放拉近视角
- wpf 判断鼠标在一段时间内是否移动 分类: .NET 2012-04-21 15:19 1408人阅读 评论(0) 收藏
- [unity基础教程] Unity3D 一个物体在两个物体间移动
- Unity中鼠标左键按下,拖拽物体移动
- Unity中鼠标左键按下,拖拽物体移动
- [Unity基础]让物体朝摄像机观察方向移动(一)
- wpf 判断鼠标在一段时间内是否移动
- unity使用手势时,通过射线判断是否触碰到了某物体
- unity中鼠标拖拽物体移动
- Unity游戏开发的数学与物理 3 ( 让物体延任意方向移动 )
- Unity中鼠标左键按下,拖拽物体移动
- 【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)
- js判断鼠标是否停止移动
- winform 判断鼠标在一段时间内是否移动 分类: .NET 2012-04-06 15:40 1236人阅读 评论(2) 收藏
- unity基础开发----同一个场景不同物体传值问题
- unity基础开发----常用代码鼠标滑动,触摸事件
- [Unity实战]判断角色面朝一定区域是否存在物体
- ios开发基础-判断NSString是否为纯数字
- Unity2D中使用鼠标拖动物体移动