Answers:
您将需要考虑几件不同的事情。
注意:下面描述的优化所带来的好处仅与一堵墙真正相关。在这一点上,考虑使用其他解决方案(例如二进制空间分区(BSP))来制作游戏墙是明智的。这将使您的关卡针对渲染(如果设计正确)和物理(针对碰撞和不碰撞的定义非常好)进行了高度优化。
一个盒子比一个平面要花费更多的渲染时间。它具有更多的顶点和三角形,这意味着您的顶点着色器和光栅化器将不得不运行更多数据。因此,仅在需要可视性时才使用方框。根据需要删除脸部,以便玩家看到。
如果可以的话,应始终使用a BoxCollider
而不是a MeshCollider
。MeshCollider
s必须在网格的每个面(或作为凸包)上应用碰撞,并使光线投射和物理速度变慢(但对于一个盒子来说,这是微不足道的)。另一件事BoxColliders
是,当玩家真正快速前进时,要让他们分阶段执行变得更加困难。即使发生连续的碰撞,如果您发现物体仍然穿过墙壁,您始终可以扩大BoxColliders
如果您使用飞机的速度更快MeshColliders
(因为您不需要调整所有BoxColliders
尺寸以匹配其尺寸),则只要获得所需的性能就可以使用它们。
扩展一点“ Coburn”的观点:
渲染:如果将墙仅渲染为平面,则该墙只能从一侧可见,因为该平面(或更确切地说是其面)仅具有一侧。因此,如果玩家能够在墙上移动,那么您将需要多个平面来覆盖所有侧面,这意味着无论如何您最终都会得到一个盒子。
物理:与全网格碰撞器相比,简单的几何碰撞器(球体,盒子等)总是更快地进行计算,因为并非必须单独检查网格的所有面。相反,可以使用“简单”射线广播或距离计算(例如,到球心的距离减去球的大小)。
对于具有单独的“平面对撞机”(Unity没有)的其他物理引擎,没有“更好”的。从性能角度来看,飞机可能会稍微快一点,但是您可能会遇到快速物体通过飞机而实际上没有碰撞的问题。然后你留下了既可以采用具有较厚的对撞机(所以框,而不是平面)或移动到连续型Collission检测(CCD),如解释在这里。
经常有人告诉我,如果您要留下阴影,最好使其牢固以帮助轻度出血,因为深度差异很小,并且会出血。
我可能是错的,但是我将所有墙壁和类似东西的两面都弄了,一面墙壁只会是几个顶点,所以把它当成飞机应该不算多。
我有一些东西留在侧面,但大部分是东西的底部或顶部,周围有很多东西可以帮助轻微出血。
我对物理学也这样做,并不是每个人都认真考虑过,但对我来说,将墙用作墙,将平面用作平面似乎正确,但这就是我