Unity3D 指引遮罩

本文探讨Unity3D中的指引遮罩,主要用于事件屏蔽和视觉区分。通过创建多个遮挡层来构建可点击区域,并实现ICanvasRaycastFilter接口阻止事件传播,结合自定义回调处理事件。详细介绍了事件功能的实现,而视觉效果的shader辅助将在后续文章中介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    指引遮罩层的作用,主要是屏蔽事件,指定区域穿透事件。在视觉上,遮挡是非遮挡区域有不同的颜色表示。我们分别从事件功能,和视觉功能上来分别介绍。事件功能需要脚本,视觉功能需要shader辅助。本文主要介绍事件功能的实现,shader的视觉辅助下篇介绍。


    事件功能上,我们建立四个遮挡层,每个层都会阻挡事件。让后利用4块遮挡层,去围成一个矩形区域形成可点击区域。我们生成一个prefab,里面包含4个屏蔽层。动态的去计算4个屏蔽层的位置。


 public RectTransform   top;
 public RectTransform   bottom;
 public RectTransform   left;
 public RectTransform   right;

private void SetRectCenterInner(Vector2 center, Vector2 size)
{  
	RectTransform   root     = uiRoot.GetComponent<RectTransform>();
	Vector2         half     = root.sizeDelta * root.localScale.x / 2;
	Vector2         halfSize = size           * root.localScale.x / 2;


	top.sizeDelta            = root.sizeDelta;
	bottom.sizeDelta         = root.sizeDelta;
	left.sizeDelta           = root.sizeDelta;
	right.sizeDelta          = root.sizeDelta;

	Vector2 tl               = new Vector2(center.x - halfSize.x, center.y + halfSize.y);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值