Unity3D-场景中3D物体添加点击事件( 二 )


运行结果:
三、通过射线 , 
这个方法主要是通过 , 射线发射 , 判断射线穿过的物体 , 根据特定的标志来判断是否点击到了该物体(比如:物体的标签Tag , 还有物体的名称)
这里只需要3d物体 , 并且有明确的唯一标识 , 再加上我们开发的ol.cs就可以 。
在场景中创建一个物体(Cube) , 然后点击面板下Tag - …- 在Tags列表中 , 点击+ , 输入你要添加的Tag名称就可以 。创建Tag完成后 , 回到场景给这个Cube选择刚才创建的Tag 。
在创建一个Cube , demo中起名(),这个名字就是射线穿过判断的标识 , 这个物体就创建完成了 。
创建单独层 , 挂载我们开发的脚本即可 。
运行结果:
完整代码:
【Unity3D-场景中3D物体添加点击事件】using UnityEngine;public class ClickRayCastHitControl : MonoBehaviour {Ray ray;RaycastHit hit;GameObject obj;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){Debug.Log("点击鼠标左键");ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out hit)){Debug.Log(hit.collider.gameObject.name);obj = hit.collider.gameObject;//通过名字if (obj.name.Equals("BeiJiChuan")){Debug.Log("点中" + obj.name);}//通过标签if (obj.tag == "ClicObj"){Debug.Log("点中" + obj.name);}}}}}