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

分享一个Unity3D点击模型跟随鼠标移动的小脚本(包括屏幕视图到三维空间的坐标转换)

2015-04-17 14:30 1431 查看
分享一个Unity3D点击模型跟随鼠标移动的小脚本,希望对需要的人有帮助!
直接把这个代码放在要移动的模型上就OVER了!!!
</pre><pre name="code" class="csharp">using UnityEngine;
using System.Collections;

public class ModelsPosChange : MonoBehaviour {
RaycastHit hit;
private Transform Icon;
bool isMove = false;
void Start () {
}

void FixedUpdate() {
if (isMove) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if ((Physics.Raycast(ray, out hit,500)) && (null != hit.collider)) {
Debug.DrawLine(ray.origin, hit.point);
Icon = transform.GetComponent<Transform>();
Vector3 screenPos = Camera.main.WorldToScreenPoint(Icon.position);
Vector3 offset = Icon.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPos.z));
Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPos.z);
Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
Icon.position = worldPos;
}
transform.renderer.material.color = Color.green;
if (Input.GetKey(KeyCode.Delete)) {
Destroy(this.gameObject);
}

} else {
transform.renderer.material.color = Color.white;
}
}
void OnMouseDown() {
isMove = !isMove;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: