Unity自定义UI触发范围

创建Unity的自定义范围触发

由于本人的功能需求,绘制垂直线的使用,但是垂直线比较尴尬的是如果使用mesh或者linerender进行渲染的话会渲染到物体哪个优先级,相同层级也无法域ui进行混合,所以修改为ui的方式进行展示。但是比较坑的在于,可以在ui上进行多边形绘制,但是垂直线的话线框太大,如果采用button进行ui触发会导致很大的可触发范围却不是提醒的触发范围,所以要在渲染重构的基础上进行触发范围的重新绘制。
经常采用的渲染重构比较方便,但是要达到很好的效果本人无法达到,对图形学的算法不了解,如果有大佬对mesh绘制的算法比较了解的话,麻烦教教我,我的网格绘制的算法还是自己坑了好多天的耳切法,被我改的似是而非还出现很多bug。今天就不写的。
常用的触发区域的重新绘制有两种方法

基于精灵图片的重绘

这种方式的重绘主要思路为读取到触发点到ui的本地左边,转换为uv坐标后读取像素值,如果然后基于像素的特性进行排除设定。网上常用的为png图片的透明通道进行判定,当透明值小于的时候触发状态返回为false,其余的返回为true。不过本人采用的是ui重绘功能,无法进行精灵图片的设置和修改所以未进行详细测试,只是大概了解。

基于自定义碰撞体的ui重绘

主要采用的是PolygonCollider2D组件进行的范围重绘本来不算难的东西,但是mmp不知道是我的工程的版本问题还是什么鬼看到的情况和我使用的情况一点都不一样,这个鬼问题卡了我好多天。今天总算解决了,白天忘了写的,明天再写,晚安

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值