首页 文章

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

提问于
浏览
0

我是Unity / C#的新手,为了学习它而构建一个简单的游戏;基本上它涉及飞越地形和射击事物 .

问题是 - 我如何创建一个非平坦的,固定大小(即非环形)的2D地形,我可以在场景开始时随机化/生成一次 .

这是我到目前为止所想的/尝试过的:

我开始时使用带有Sprite渲染器和Box Collider 2D的游戏对象创建一个巨大的平坦区域 . 我正在使用粒子进行火箭飞行和爆炸,并将它们与一架效果很好的飞机相撞 . 这很有效,但地形平坦无聊 .

接下来,我在photoshop中绘制了一些基本的山峰,将它们添加为具有多边形对撞机2D组件的精灵,然后将它们拖到场景中(以便稍后将它们的位置随机化) . 由于2D / 3D混合,这很快并且运行良好但不能很好地与粒子一起使用,并且我想会导致所有级别看起来相同,除非我可以绘制大量不同的地形精灵 . 这是正常的做法吗?是否可以向对象添加更多平面以允许粒子碰撞?

另一个想法是 - 我可以创建一个多边形对撞机2D /或边缘对撞机2D,并基本上用纹理填充该区域?在那一个没有运气,似乎它可以工作,但我无法得到纹理出现和适合形状 . 很遗憾,特别是随后我可以生成或随机化点的位置 .

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

我所有的解决方案都有利有弊 - 也许我错过了一些东西?

1 回答

  • 0

    您可以在脚本中以统一的方式创建网格 . 它们可以是2d或3d,具体取决于您设置顶点的方式 . 碰撞器独立于渲染网格 . 我没有这方面的深入教程,但我认为这个视频会暗示你正确的方向并给你关键词谷歌或在统一文档中阅读:

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

相关问题