一.问题:当3D物体和UI元素重叠显示时一般UI元素会遮挡物体,这时点击UI元素响应时UI后方的物体也会响应。
private void OnMouseDown() { ChangeColor(); }
3D物体使用OnMouseDown方法接收响应
public class ImageColor : MonoBehaviour,IPointerClickHandler
public void OnPointerClick(PointerEventData eventData) { ChangeColor(); }
UI元素实现IPointerClickHandler接口接收响应
二.解决方案:3D物体也使用接口的方式接收响应
在MainCamera上添加PhysicsRaycaster进行射线检测
public class Cube : MonoBehaviour,IPointerClickHandler
public void OnPointerClick(PointerEventData eventData) { ChangeColor(); }
在3D物体上实现IPointerClickHandler接口接收响应