当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
{

本文探讨了Unity中UI遮挡3D物体时的三种情况:UI响应,3D物体不响应;UI和3D物体同时响应;以及3D物体响应,但被UI遮挡时不响应。通过添加PhysicsRaycaster组件和特定脚本来实现不同交互效果。
最低0.47元/天 解锁文章
8802

被折叠的 条评论
为什么被折叠?



