1:写这个东西吧,主要是为了检测自己的点击或者什么的到底点在了哪里去弄的,,废话不多写,虽然是写给自己看的。。接下去是正文
一:首先我要先发射一条射线到我要点击的地方去,所以要发射一根射线到鼠标点击的位置
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
接下去是获取射线发射到的位置
RaycastHit HitInfo;
Physics.Raycast(ray,out HitInfo),这句话可以用IF语句进行判断是返回值是bool类型的,加上IF语句就是当你碰撞到了物体后有了终点会返回一根true,else你懂得。。。。
Debug.DrawLine(ray.origin, HitInfo.point,Color.red);//在场景中绘制一根红色的射线
GameObject obj = HitInfo.collider.gameObject.transform.parent.gameObject;//通过子物体坐标获取父物体
Debug.Log("点中的物体名称是:" + obj.name);//这样就可以在场景中和Consloe面板中看到你点到的游戏物体和游戏物体的父物体名字了,如果你要获取子物体名字,那就直接返回子物体名字就可以了。
二:我要在游戏面板中也绘制出一根可以看到的激光线,这里我用到了Unity里面自带的LineRenderer组件(具体属性自己查去。就不多说了,。我也没怎么看,毕竟还要做别的事情,后面有机会再补全这个组件下面的各个信息)
public LineRenderer lineRenderer;//获取组件信息不解释连招XXX
首先吧说说这个组件添加了后会有什么影响(增加了这个组件后你原先物体的坐标会变成世界坐标而且不能移动,这时候你就把面板上面的USE World Space给他取消掉就可以在正常位置了方便调试,但是你在使用的时候记得在脚本中写上lineRenderer。world.space=true不然位置会不对的),
lineRenderer.startWidth = 0.02f;//设置起点高度
lineRenderer.endWidth = 0.01f;//设置终点高度
line