0

所以我有这个游戏,其中我有可破坏的地形。我的设置是,当地形被破坏时,地形纹理的一部分会变得透明,以充当火山口。在发生任何类型的更改后,我删除地形纹理上的多边形碰撞器并创建一个新的碰撞器以重新计算地形,但显然这对处理能力非常不利。有没有办法在不必这样做的情况下重置多边形对撞机?

另外,多边形碰撞器不是很准确,我被告知像素完美碰撞是不可能的,但我抱有希望。有没有办法至少提高准确性?

这是我的问题的一个例子:

在此处输入图像描述

4

2 回答 2

1

对撞机重新计算代价高昂,在 Unity 中无法绕过它,您甚至无法异步进行。

这取决于您的具体情况,但对于具有动态地形破坏的蠕虫类游戏,我根本不会使用多边形对撞机/Unity 物理引擎。我将创建自己的像素完美碰撞系统,该系统仅依赖于底层地形纹理。您已经有了地形数据,可以使用 Bresenham 的算法检查碰撞。

这是一个教程: http: //gamedevelopment.tutsplus.com/tutorials/coding-destructible-pixel-terrain-how-to-make-everything-explode--gamedev-45

于 2016-08-23T11:32:46.537 回答
1

在这种情况下,我建议设置基于集群的对撞机。你如何计算变得透明的纹理区域?如果它具有固定大小,您可以创建一个大型对撞机,它由许多较小(可能是六边形?)大小的对撞机组成,其大小等于透明纹理的区域。

使纹理透明后,您只需销毁集群。尽管您必须为每张地图制作十六进制(如果您选择此形状)网格。

这将更难在程序生成的地图中实现,但它仍然是可能的,因为目前没有动态对撞机。

于 2016-08-24T10:30:39.760 回答