我是Unity / C#的新手,为了学习它而构建一个简单的游戏;基本上它涉及飞越地形并射击事物。
问题是 - 我如何创建一个非平坦的,固定大小(即非无限)的2D地形,我可以在场景开始时随机化/生成一次。
这是我迄今为止的想法/尝试:
我开始时使用带有Sprite渲染器和Box Collider 2D的游戏对象创建一个巨大的平坦区域。我使用粒子进行火箭飞行和爆炸,并将它们与一架效果很好的飞机相撞。这很有效,但地形平坦无聊。
接下来,我在photoshop中绘制了一些基本的山脉,将它们添加为具有多边形对撞机2D组件的精灵,然后将它们拖到场景中(想要随后将它们的位置随机化)。由于2D / 3D混合,这很快并且运行良好,但是不能很好地与粒子一起使用,并且我认为除非我可以绘制大量不同的地形精灵,否则将导致所有级别看起来相同。这是正常的做法吗?是否可以向对象添加更多平面以允许粒子碰撞?
另一个想法是 - 我可以创建一个多边形对撞机2D /或边缘对撞机2D,并基本上用纹理填充该区域?在那一个没有运气,它似乎可以工作,但我不能得到一个纹理出现和适合形状。遗憾,特别是随后我可以生成或随机化点的位置。
最后,我想知道我是否应该只使用3D形状。我可以对它们进行纹理处理,它可以很好地处理粒子,但是现在还没有与我的所有其他2D资源进行交互,我必须向它们添加3D对撞机,这看起来并不正确,因为Unity专门提供了2D工具集,而我正在尝试制作2D游戏。
我所有的解决方案都有利有弊 - 可能还有我错过的东西?
答案 0 :(得分:0)
您可以在脚本中以统一的方式创建网格。它们可以是2d或3d,具体取决于您设置顶点的方式。碰撞器独立于渲染网格。我没有这方面的深入教程,但我认为这个视频会暗示你正确的方向并给你关键词谷歌或在统一文档中阅读: