在Unity3D中使用2D对撞机创建一组2D切片的最有效方法是什么?

时间:2015-08-23 19:45:04

标签: unity3d 2d mesh memory-efficient collider

首先,我使用的是Unity3d。

使用纹理图集(和图块数据)使用2D对撞机创建一组2D图块的最有效(在内存方面)是什么?

背景资料: 我正在研究2D地形生成资产。它与Terraria的随机世代非常相似。目前,每个图块都被实例化为单独的GameObject。我现在知道,这是非常低效的,我应该使用纹理图集和平铺数据。以下是我一直关注的教程的链接:3D http://studentgamedev.blogspot.co.uk/2013/08/unity-voxel-tutorial-part-1-generating.html

问题是网格对撞机是3D对撞机; 3D碰撞器不能与2D碰撞器碰撞。目前在Unity中,没有2D碰撞器(我知道)具有网格属性;我需要动态更改2D对撞机以调整到包含图块的位置。我如何使用2D对撞机开发高效的2D平铺系统?

以下是我对可能有效的技术的一些看法:

  • 将块对撞机2D组件添加到块中每个图块的块游戏对象。
  • 以某种方式动态使用多边形对撞机2D来拉伸所有实体瓷砖。

我已阅读了几个主题,但无法找到解决此问题的好方法。 我主要是在寻找一个经过验证的技术/方法,但我对任何建议或技术持开放态度。我很乐意根据需要提供清晰度。谢谢你的回答!我很感激你回答我的问题的时间 - 这有点帮助!

1 个答案:

答案 0 :(得分:0)

正如你所说,2D对撞机不适用于3D对撞机。正确的方法是选择其中一种。

如果要混合2D和3D对象,请使用3D。您可以限制物体受物理影响的轴,如this answer中所述。