3D物体和可点击(有可点击组件比如Image并且勾选了RayCastTarget)UI之间重合(UI盖住3D物体)
点击UI有两种情况可能需要用到
- UI和物体都响应
- 只响应UI,不响应物体
UI和物体都响应
-
挂载继承了monobehaviour的脚本的3D物体之间重写OnMouseDonw即可,这时尽管有可点击UI挡住,3D物体在鼠标在其区域内按下的时候仍然会响应,这时挂载了继承了IPointerClickHandler接口的脚本的UI的物体也会响应到点击事件。
-
如果实在不能使用第一种方法,还有一种方法就是在UI上面继承了IPointerClickHandler的脚本里面添加这样一段函数,之所以要在UI里面写,是因为只有UI能进入到OnPointerClick,在3D物体上面写的话,就不行了。
void IPointerClickHandler.OnPointerClick(PointerEventData eventData)
{
TransportMsg(eventData);
}
private void TransportMsg(PointerEventData eventData)
{
List<RaycastResult> res = new List<RaycastResult>();
<