创建Unity的自定义范围触发
由于本人的功能需求,绘制垂直线的使用,但是垂直线比较尴尬的是如果使用mesh或者linerender进行渲染的话会渲染到物体哪个优先级,相同层级也无法域ui进行混合,所以修改为ui的方式进行展示。但是比较坑的在于,可以在ui上进行多边形绘制,但是垂直线的话线框太大,如果采用button进行ui触发会导致很大的可触发范围却不是提醒的触发范围,所以要在渲染重构的基础上进行触发范围的重新绘制。
经常采用的渲染重构比较方便,但是要达到很好的效果本人无法达到,对图形学的算法不了解,如果有大佬对mesh绘制的算法比较了解的话,麻烦教教我,我的网格绘制的算法还是自己坑了好多天的耳切法,被我改的似是而非还出现很多bug。今天就不写的。
常用的触发区域的重新绘制有两种方法
基于精灵图片的重绘
这种方式的重绘主要思路为读取到触发点到ui的本地左边,转换为uv坐标后读取像素值,如果然后基于像素的特性进行排除设定。网上常用的为png图片的透明通道进行判定,当透明值小于的时候触发状态返回为false,其余的返回为true。不过本人采用的是ui重绘功能,无法进行精灵图片的设置和修改所以未进行详细测试,只是大概了解。
基于自定义碰撞体的ui重绘
主要采用的是PolygonCollider2D组件进行的范围重绘本来不算难的东西,但是mmp不知道是我的工程的版本问题还是什么鬼看到的情况和我使用的情况一点都不一样,这个鬼问题卡了我好多天。今天总算解决了,白天忘了写的,明天再写,晚安