检测网格上图像大小与网格大小的不同方法

问题描述 投票:0回答:1

我正在创建一个益智游戏,该游戏会生成带有2D网格的随机大小的片段。图像包含透明部分,有时一块完全透明。我需要检测一块透明的百分比。我发现做到这一点的一种方法是逐像素进行。我将解决方案发布到了此HERE。但是,此过程会在加载过程中增加几秒钟的时间,我想避免这种情况,我正在寻找其他想法

我已经考虑过使用MeshCollider的选择轮廓来以某种方式获得可以与网格的表面积进行比较的表面积,但是我发现的一切都在于使用专用着色器渲染轮廓。有没有人有解决此问题的想法?

Example puzzle piece with transparent pixels around top of head.

unity3d sprite mesh transparent mesh-collider
1个回答
0
投票

我想您可以在您的精灵中添加PolygonCollider2D并将其路径用于轮廓和表面积的计算。但是不确定是否会更快。

PolygonCollider2D.GetPath

路径是定义对撞机轮廓的点之间的线段的循环序列

您还可以通过仅检查第2个或第N个像素来提高第一种方法的性能,因为它应该足够近似。

© www.soinside.com 2019 - 2024. All rights reserved.