2017-05-03 82 views
-1

http://imgur.com/a/owX1R。 (我的游戏截图)Unity5。当我点击一个UI按钮时,它后面的GameObject被点击

当我点击Upgrade或Sell按钮时, 后面的炮塔会“启用”。我该如何改变它? (这是一款带触摸输入的手机游戏)。有没有我应该实现奥德我可以简单地改变,在检查?谢谢您的回答:)任何代码

+0

你需要改变你检测触摸/点击3D对象的方式。使用'EventSystems'。请参阅“6.对于3D对象(网格渲染器/任何3D对撞机)”。你也可以使用'EventSystem.IsPointerOverGameObject',但这只是一个解决方法。 – Programmer

回答

0

尝试先用这个检查..

public static bool IsPointerOverUIObject() { 
    PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current); 
    eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y); 
    List<RaycastResult> results = new List<RaycastResult>(); 
    EventSystem.current.RaycastAll(eventDataCurrentPosition, results); 
    return results.Count > 0; 
} 
+0

你的意思是在UI按钮的脚本中?顺便说一句,感谢您的快速回答 – Oliver

+0

我应该详细阐述。在可能“隐藏”UI元素的GameObjects上使用它来检查它们是否应该被点击。 –

0

尝试检查的光线投射触发的UI图像,它应该阻止raycast和鼠标点击。 这里是documentation reference

+0

对不起,我对c#很陌生,你能描述一下你的Raycast触发器吗? – Oliver

+0

在您的Button UI对象上的Unity中,其Image组件上应该有Raycast Trigger复选框。 –

相关问题