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

来源:互联网 发布:python编程入门第三版 编辑:程序博客网 时间:2024/04/19 01:21
分享一个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;    }}

0 0