在 3d world unity 上点击 3d gameobject
Click on 3d gameobject on 3d world unity
我正在我的地图上填充 3d 标记。下一个目标是检测哪个标记被点击。每个标记都附有 UI 按钮,但这不是一个好方法。谁能提出更好的建议?
你的标记有碰撞器吗?如果是这样,那么您可以在附加到游戏对象的脚本组件中使用 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
}
}
}
您可以在游戏对象中附加一个碰撞器并使用 Physic.RayCast 进行检测:
https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
我正在我的地图上填充 3d 标记。下一个目标是检测哪个标记被点击。每个标记都附有 UI 按钮,但这不是一个好方法。谁能提出更好的建议?
你的标记有碰撞器吗?如果是这样,那么您可以在附加到游戏对象的脚本组件中使用 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
}
}
}
您可以在游戏对象中附加一个碰撞器并使用 Physic.RayCast 进行检测:
https://docs.unity3d.com/ScriptReference/Physics.Raycast.html