在 Unity3D 中使用 2D 碰撞器创建一组 2D tile 的最有效方法是什么?

What is the most efficient way to create a group of 2D tiles with 2D colliders in Unity3D?

首先,我使用的是Unity3d

使用纹理图集(和图块数据)使用 2D 碰撞器创建一组 2D 图块的最有效(就内存而言)方法是什么?

背景信息: 我正在研究 2D 地形生成资产。它与泰拉瑞亚的随机生成非常相似。目前,每个图块都被实例化为一个单独的游戏对象。正如我现在所知,这是非常低效的,我应该改用纹理图集和图块数据。这是我一直关注的教程的 link,该教程在 3D 中处理此问题:http://studentgamedev.blogspot.co.uk/2013/08/unity-voxel-tutorial-part-1-generating.html

问题是网格碰撞体是3D碰撞体; 3D 碰撞器不能与 2D 碰撞器发生碰撞。目前在 Unity 中,没有具有网格属性的 2D 碰撞器(据我所知);我需要动态更改 2D collider 以适应包含图块的位置。我应该如何使用 2D 碰撞器开发高效的 2D tile 系统?

以下是我认为可行的一些技巧:

我已经通读了几个线程,但找不到解决这个问题的好方法。 我主要是在寻找针对此问题的经过验证的 technique/approach,但我愿意接受任何建议或技巧。我很乐意根据需要提供清晰度。感谢您的任何回答!我很感激你花时间回答我的问题 - 它帮助了很多人!

正如您所说,2D 碰撞器不适用于 3D 碰撞器。正确的做法是二选一。

如果您要混合 2D 和 3D 对象,请选择 3D。您可以限制对象受物理影响的轴,如 this answer.

中所述