点击3d世界团结的3d gameobject

时间:2017-03-06 07:06:47

标签: unity3d raycasting

我在地图上填充了3d标记。下一个目标是检测点击哪个标记。带有每个标记的附加UI按钮,但这不是一个好方法。任何人都能建议更好的东西

2 个答案:

答案 0 :(得分:1)

你的标记是否有对撞机?如果是这种情况,那么你可以使用你可以在附加到游戏对象的脚本组件中使用OnMouseDown函数,只要它有一个碰撞器组件。

否则,您可以使用http://answers.unity3d.com/questions/34795/how-to-perform-a-mouse-click-on-game-object.html

中的此片段
function Update ()
{
     if ( Input.GetMouseButtonDown(0))
     {
         var hit : RaycastHit;
         var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);

         if (Physics.Raycast (ray, hit, 100.0))
         {
             // handle mouseclick
         }
     }
 }

答案 1 :(得分:1)

您可以在游戏对象中附加对撞机并使用Physic.RayCast进行检测:

https://docs.unity3d.com/ScriptReference/Physics.Raycast.html