相关API:
1.Ray Camera.main.ScreenPointToRay(Vector3 pos) 返回一条射线Ray从摄像机到屏幕的一个点
2.Ray Camera.main.ViewportPointToRay(Vector3 pos) 返回一条射线Ray从摄像机到视野上指定的一个点
3.Ray 射线类
4.RaycastHit 光线投射碰撞信息
小例子:
1 using UnityEngine; 2 using System.Collections; 3 4 public class RayTest : MonoBehaviour { 5 6 // Use this for initialization 7 void Start () { 8 9 } 10 11 // Update is called once per frame 12 void Update () 13 { 14 if(Input.GetMouseButton(0)) 15 { 16 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出到点击坐标的射线 17 RaycastHit hitInfo; 18 if(Physics.Raycast(ray,out hitInfo)) 19 { 20 Debug.DrawLine(ray.origin,hitInfo.point);//划出射线,只有在scene视图中才能看到 21 GameObject gameObj = hitInfo.collider.gameObject; 22 Debug.Log("click object name is " + gameObj.name); 23 if(gameObj.tag == "boot")//当射线碰撞目标为boot类型的物品 ,执行拾取操作 24 { 25 Debug.Log("pick up!"); 26 } 27 } 28 } 29 } 30 }