当UI遮挡3D物体时,这里主要讨论以下三种情况:
- 点击UI,UI响应,但被遮挡的3D物体不响应;
- 点击UI,UI和被遮挡的3D物体同时响应;
- 点击3D物体有响应,但点到UI上时3D物体不响应。
情况一
一、新建场景,确保Image遮挡住Cube,如下图所示:
二、给Main Camera添加PhysicsRaycaster组件(重要)
三、在Image上挂载以下脚本:
/********************************************************************
File :ClickUI.cs
Date :2020-2-24 22:27
Author:Librelite
Function:点击图片改变颜色
*********************************************************************/
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections.Generic;
public class ClickUI : MonoBehaviour, IPointerClickHandler
{
private int _index;
void Start()
{
_index = 0;
}
/// <summary>
/// 实现IPointerClickHandler接口,而不是使用OnMouseDown()方法
/// </summary>
public void OnPointerClick(PointerEventData eventData)
{
ChangeColor();
//情况二:需取消下面一行注释
//ExecuteAll(eventData);
}
private void ChangeColor()
{
if (_index == 0)
{
GetComponent<Image>().color = Color.red;
}
else
{