【问题标题】:Unity layers not working as I wantUnity 图层无法按我的意愿工作
【发布时间】:2017-07-22 15:35:42
【问题描述】:

所以我是 Unity 的新手,我创建了我的第一个 2D 游戏,它将有一个玩家、怪物、平台和一个静态背景图像。

所以我所做的是将 2D 精灵设置为默认图层上的背景图像。我还从资源商店中获得了一个角色,我刚刚将其拉入游戏并设置为用户层 8(玩家)。

平台在地图上随机生成,起初在背景中不可见,但当我将精灵排序顺序设置为 1 时,它们可见。

现在是怪物。它们也来自资产商店,但通过 C# 代码插入到游戏中。如果我在屏幕上有背景,即使我为它们设置了 GameObject.layer = 8(与玩家相同的层),它们仍然不可见。为什么?这里有什么问题。

提前致谢。

【问题讨论】:

    标签: c# unity5 game-engine layer unity2d


    【解决方案1】:

    Unity有两种图层,你改变的不是决定绘制顺序的,你需要改变SpriteRenderer组件中的SortingLayer和OrderInLayer参数。 https://unity3d.com/learn/tutorials/topics/2d-game-creation/sorting-layers

    如果您只使用精灵,那么您可以将所有精灵保留在同一个 SortingLayer 中,并将背景的 OrderInLayer 更改为 -100 之类的值。 如果您使用 3d 模型,则需要手动设置对象的位置靠近或远离相机(并将所有精灵保留在默认的 SortingLayer 上)。

    【讨论】:

    • 是的,怪物没有使用精灵,它们是“预制件”(?)组件动画,刚体,刚体,盒子 collider2d 和一个子对象或任何它被称为蒙皮网格渲染器的东西。
    • 我也在尝试添加一些环境对象,如树木等(也是预制件),它们具有网格过滤器、网格渲染器和网格碰撞器组件。其中一部分通过背景可见。不幸的是,我没有掌握这个窍门:/
    • 我的猜测是使用 z 值对它们进行排序,将视图更改为 3D,然后将背景放置在远离相机的位置,并将预制件靠近。我想你的相机设置为正交,所以它不会影响投影。
    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多