Unity 鼠标点击事件穿透

在做项目的时候我是使用onMouseDown来处理点击3D物体的事件的,但发现在点击游戏UI的时候也会触发UI下面的3D物体的点击事件,这样可不行。
于是我参考了这篇文章:
https://blog.csdn.net/wealupa/article/details/117604939

修改成功!总结如下:

  • 只触发上层UI,不触发UI下面的物体点击事件:
    使用上面那篇文章中的“通过事件,实现接口IPointerClickHandler”方法
    要点:
    1. 给场景中的Camera添加PhysicsRaycaster脚本;

    2. 在场景中添加事件系统EventSystem,如图操作:在这里插入图片描述
      点击 Add Default… 后出现如图:在这里插入图片描述

    3. 设置被点击物体(3D)物体,一定要带触发器(Collider),然后把点击后处理的脚本挂在被点击的物体上在这里插入图片描述
      脚本内容如下:

using UnityEngine;
using UnityEngine.EventSystems; //要点

public class EventClick : MonoBehaviour,IPointerClickHandler //要点
{
    public void OnPointerClick(PointerEventData eventData)  //要点
    {
       print("点击了::"+this.name);
    }
}
  • 既触发UI,又触发下面物体的点击事件
    使用onMouseDown函数
    要点:只用给物体添加collider和场景中添加事件系统EventSystem
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值