您的位置:首页 > 移动开发 > Unity3D

Unity鼠标拖拽物体

2014-12-24 14:19 344 查看
<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("鼠标离开该模型区域时");
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: