Unity2D-创建固定大小动态地形的方法

本文关键字:方法 动态 创建 Unity2D- | 更新日期: 2023-09-27 18:19:32

我是Unity/C#的新手,为了学习它,我正在构建一个简单的游戏;从本质上讲,它包括飞越地形和射击。

问题是-我如何创建一个非平面、固定大小(即,不是无限的)2D地形,我可以在场景开始时随机生成一次。

以下是我迄今为止的想法/尝试:

一开始,我使用带有精灵渲染器和长方体碰撞器2D的游戏对象创建了一个巨大的平坦区域。我使用粒子进行火箭轨迹和爆炸,并将它们设置为与运行良好的飞机碰撞。这是可行的,但地形平坦而无聊。

接下来,我在photoshop中绘制了一些基本的山脉,将它们添加为带有多边形碰撞器2D组件的精灵,并将它们拖到场景中(稍后可以随机化它们的位置)。这很快,效果很好,但由于2D/3D混合,粒子效果不好,我想除非我能画很多不同的地形精灵,否则会导致所有级别看起来都一样。这是正常的方法吗?是否可以向对象添加更多的平面以允许粒子碰撞?

另一个想法是——我可以创建一个2D多边形碰撞器或2D边缘碰撞器,并基本上用纹理填充该区域吗?这一点运气不好,看起来它可以起作用,但我无法找到适合形状的纹理。很遗憾,尤其是当我稍后可以生成或随机化点的位置时。

最后,我想知道我是否应该只使用3D形状。我可以对它们进行纹理处理,它可以很好地处理粒子,但现在不能与我的所有其他2D资产交互,我必须向它们添加3D碰撞器,这似乎是不对的,因为Unity专门提供了2D工具集,我正在尝试制作2D游戏。

我所有的解决方案都有利弊——也许我错过了什么?

Unity2D-创建固定大小动态地形的方法

您可以在脚本中以统一的方式按程序创建网格。根据设置顶点的方式,它们可以是二维或三维。碰撞器独立于渲染的网格。我没有深入的教程,但我认为这段视频会提示你正确的方向,并给你谷歌关键词或在统一文档中阅读:

https://www.youtube.com/watch?v=nPX8dw283X4

相关文章: