IsPointerOverGameObject 获取游戏对象

IsPointerOverGameObject get the gameobject

我想知道用户将鼠标指向哪个对象。

我发现我可以知道他何时指向一个(IsPointerOverGameObject),但我找不到获取该游戏对象的方法。 http://docs.unity3d.com/460/Documentation/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.html

我真的必须手动对 UI 进行光线投射吗?

这就是你的做法,你发送一个光线投射。

if(Input.GetMouseButtonDown(0)) 
{                    
    RaycastHit hit = new RaycastHit();
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

    if(Physics.Raycast(ray, out hit))
       print(hit.collider.transform.gameObject.name);
}

我会使用事件触发器来检测与 UI 元素的交互(也许 Pointer Down 是您想要的?),而不是在这里搞乱光线投射。