unity 射线检测真机失效_Unity不让射线在UI开启时响应

最近slg项目中有个需求,场景中有地块,给武将上阵,同时支持拖动,点击等基本操作,同时又要打开UI替换武将,需要处理点击穿透的问题

需求点:

1.点击地块,打开UI,但是不能点穿导致再次打开(其他办法也行不在这讨论);

2.打开UI,阻挡射线点击,和第一点需求差不多

3.Canvas Group只能解决 让射线响应 UI不被响应的需求,而不是UI开启时射线不响应的需求

5ec387cc2816

地块最基本的box collider响应ray

场景中点击需要打开对应UI,操作一系列上阵创模等功能,但是打开UI的同时,点击到场景中这些碰撞盒,会持续响应,UI上BG image raycasttarget 并不能阻挡射线检测,这时需要代码中做一系列操作.

1.首先UI父物体上添加GraphicRaycaster组件,我这里mask只选了UI,其他不知道,没测试过,

2. 声明各种变量并找到

private GraphicRaycaster RaycastInCanvas;

private EventSystem eventSystem;

3.前任程序的做法是在Update中通过射线检测及完成各种需求

主要做法是Input.GetMouseButtonDown(0) 点击时在判断,增加下列代码

private bool CheckUiRaycastObjects()

{

PointerEventData eventData = new PointerEventData(eventSystem);

eventData.pressPosition = Inpu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值