Unity使用Polygon Collider 2D 实现不规则图形碰撞自动匹配

Posted 御雪妃舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity使用Polygon Collider 2D 实现不规则图形碰撞自动匹配相关的知识,希望对你有一定的参考价值。

最近待业在家,朋友问了这样一个问题,就看了下这个polygon collider 2d

朋友的问题是:RawImage图片放进去,不能自动匹配碰撞体?

然后我查了下,这玩意,一步步的沟通解决,交流。

step1:
去看了下这玩意的api

api 表明把图片直接拖上去是可以自动匹配的,然后照做了

step2:
新建了一个工程,新建了一个RawImage,添加了Polygon Collider 2D碰撞体,拖了个不规则图片上去,是这样的:

上面一个是图片,一个是图片里的碰撞体,可是碰撞体特别的小,在图片里看只是一个点。

这就成了一个问题。

Step3:为了解决这个问题,第一反应是想改Polygon Collider 2D的size;

可是大小是不可编辑的,后来改变transform的scale,发现这个size是随着scale的大小改变的,可是RawImage的大小也在等倍放大,不可取,后来就改了RectTransform的width和height

结果是刚好匹配的,如图所示:

把结果告诉了朋友,可是朋友的电脑上是不可以的,是这样的:

后来查证后发现是Canvas不一样,于是此方法是取巧的,不可行的,后来又继续尝试.

Step4:于是同时尝试了image, rawimage,还有Sprite,发现Sprite是可以的额,效果如图。

原因是这里直接跟随sprite的图形大小随scale变化,没有RectTransform,可以直接编辑。

Step5:
Step4是可以临时解决该问题,但并非完美解决。
于是尝试用脚本修改collider的size,可是get不到points下面的size.

各位有更好的解决方案的欢迎评论!

以上是关于Unity使用Polygon Collider 2D 实现不规则图形碰撞自动匹配的主要内容,如果未能解决你的问题,请参考以下文章

Unity -- Collider(碰撞器与触发器)

Unity3d -- Collider(碰撞器与触发器)

Unity:Collider.bounds.extends.x 自最新更新以来返回半径 - 为啥?

Unity3d — — UGUI之Box Collider自适应大小

unity的transform.position 只移动了collider?

使用 Collider Unity 将线渲染转换为 3d 网格