天向大家介绍一下,如何初步的用Unity3D从摄像机到鼠标的射线,也就是鼠标检测到Unity3D世界中的游戏对象!
如何才能使射线检测到游戏对象呢,只有一个条件,那就是必须添加collider组件,否则你是绝对检测不到想要检测的物体的!
如果你还是检测不到Unity3D世界里的游戏对象的话!很可能是"你没有在Update里调用该方法"!
代码如下:
AخA
1
using UnityEngine;
2
using System.Collections;
3
public class RayToFindTest : MonoBehaviour {//射线查找的测试脚本
4
void Update () {
5
RayToFindMethod ("Player");//
6
}
7
void RayToFindMethod(string tags)//定义一个私有的,无返回值,有参数的方法 参数为你想找到的游戏对象的标签(Tag)
8
{
9
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);//实例化从摄像机到鼠标的摄像
10
RaycastHit hit;//这个为射线命中的点
11
if (Physics.Raycast (ray,out hit)) {//物理静态类中的光线投射方法 -> 意义:射线投射出 "得到射线命中的点(hit)"
12
if (hit.transform.CompareTag(tags)) {//如果射线命中的点的标签(Tag)值为 tags -> 即:外部传入的参数(你想要找到的游戏对象的标签) 并把hit射线命中的点的类型转换为transform类型
13
Debug.Log (hit.transform.name);//为真执行输出射线命中点的名字
14
}
15
}
16
}
17
}