【问题标题】:Unity2D - Method to create a fixed size dynamic terrainUnity2D - 创建固定大小动态地形的方法
【发布时间】:2014-08-27 13:38:12
【问题描述】:

我是 Unity/C# 的新手,我正在构建一个简单的游戏来学习它;本质上,它涉及飞越地形并射击物体。

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

到目前为止,这是我的想法/尝试:

我首先使用带有 Sprite Renderer 和 Box Collider 2D 的游戏对象创建了一个巨大的平坦区域。我将粒子用于火箭轨迹和爆炸,并将它们设置为与运行良好的飞机相撞。这行得通,但地形平坦而乏味。

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

另一个想法是 - 我可以创建一个 2D 多边形碰撞器/或 2D 边缘碰撞器并基本上用纹理填充该区域吗?那个没有运气,它似乎可以工作,但我无法让纹理出现并适合形状。很遗憾,尤其是因为我可以稍后生成或随机化点的位置。

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

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

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

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

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

    【讨论】:

    • 我确实看过那个视频(几次),但我并不知道如何实际创建这样的东西。目前我正在使用由 2D 精灵和碰撞器构建的块景观,它有点复古但似乎运行得足够流畅(只要我不尝试向它们都添加刚体!)
    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2010-12-04
    • 1970-01-01
    • 2019-10-13
    • 2017-04-23
    相关资源
    最近更新 更多