http://imgur.com/a/owX1R。 (我的游戏截图)Unity5。当我点击一个UI按钮时,它后面的GameObject被点击
当我点击Upgrade或Sell按钮时, 后面的炮塔会“启用”。我该如何改变它? (这是一款带触摸输入的手机游戏)。有没有我应该实现奥德我可以简单地改变,在检查?谢谢您的回答:)任何代码
http://imgur.com/a/owX1R。 (我的游戏截图)Unity5。当我点击一个UI按钮时,它后面的GameObject被点击
当我点击Upgrade或Sell按钮时, 后面的炮塔会“启用”。我该如何改变它? (这是一款带触摸输入的手机游戏)。有没有我应该实现奥德我可以简单地改变,在检查?谢谢您的回答:)任何代码
尝试先用这个检查..
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;
}
你的意思是在UI按钮的脚本中?顺便说一句,感谢您的快速回答 – Oliver
我应该详细阐述。在可能“隐藏”UI元素的GameObjects上使用它来检查它们是否应该被点击。 –
尝试检查的光线投射触发的UI图像,它应该阻止raycast和鼠标点击。 这里是documentation reference
对不起,我对c#很陌生,你能描述一下你的Raycast触发器吗? – Oliver
在您的Button UI对象上的Unity中,其Image组件上应该有Raycast Trigger复选框。 –
你需要改变你检测触摸/点击3D对象的方式。使用'EventSystems'。请参阅“6.对于3D对象(网格渲染器/任何3D对撞机)”。你也可以使用'EventSystem.IsPointerOverGameObject',但这只是一个解决方法。 – Programmer