【问题标题】:Unity Tilemap layer order sorting [Player in front of and behind tiles] Tree sprite consisting of 4 loose tilesUnity Tilemap 图层顺序排序 [瓷砖前后的玩家] 由 4 个松散瓷砖组成的树精灵
【发布时间】:2019-09-08 22:07:55
【问题描述】:

当我从 Web 开发分支出来时,我一直在慢慢地融入 Unity2D。结果,我目前遇到了一个渲染问题,我遇到了一个渲染问题,我在瓦片地图中有树(以及将来具有相同样式的多个其他对象),其中一棵树由 2x2 瓦片组成。玩家需要根据它的 Y 值在树的前后行走。这有效,只是玩家将树计算为 4 个单独的精灵,因此它一次显示玩家在一个精灵后面。

我的问题是,解决方案是在树的前面和后面正确渲染玩家。解决方案需要动态地确定我可以在哪里,例如,让玩家 3 块高并且仍然按预期工作。

不幸的是,我刚刚创建了这个帐户,所以我还不能在 SO 上放置图像。

  • 我已经将项目图形设置弄乱了,我更改了透明度排序模式和轴,现在轴将位于 ​​0/1/-1。
  • 我已将玩家图层和瓦片地图放置在同一图层上。
  • 根据在线指南和可能的解决方案,Tilemap 渲染器的模式是独立的。

我希望这个解决方案能让我找到一种方式,我可以动态添加任何东西,比如板条箱、一桶 2 块高的瓷砖以及任何我只需放置它们的东西,如果可以创建一个有 2 个瓷砖空间大的瓷砖。

【问题讨论】:

  • 如果树不是瓦片地图的一部分,即你之后放置它们,你可以改变树变换的z值。如果他们的价值小于/大于玩家,他们会看起来走在前面/后面。
  • 我尝试过使用预制笔刷,使树成为预制件,但这对我来说并不是一个可行的解决方案,因为必须为 E.G. 生成相同的结果。建筑物、更大的岩石等等以及实现许多岩石/其他对象将是一个太多的解决方法(如果我正确的话)。我已经通过图形设置设置了自动排序,但这显然会计算单个精灵。
  • 你能在不同的图层上使用多个瓦片地图吗?
  • 我已经是了,当然还在测试以积累经验,但我目前的布局是:地面(如背景、草地、路径等) 地形(水等,因此树木和岩石仍然可以重叠)对象(玩家、敌人、岩石和所有需要基于位置的图层排序的东西)障碍物(对于地图中的墙壁,那些东西)覆盖物(当我想要一个悬垂的建筑物时,当玩家在它下面时它会变得透明,没有工作这个出来)
  • 如果你的建筑悬挑在单独的瓦片地图中,你能说当玩家与那个瓦片地图碰撞器发生碰撞时,瓦片地图的alpha值会发生变化吗?

标签: c# unity3d


【解决方案1】:

此链接可能会对您有所帮助:https://gamedev.stackexchange.com/questions/119734/unity-order-in-z-layer-for-objects

然而,在这个提议的解决方案中,树不能成为 tilemap 的一部分。

【讨论】:

  • 我已经尝试过这个解决方案,我可以使用预制刷将每棵树、石头和其他建筑物制作成预制件,但这可能是一个太大的解决方法,因为它实际上会取代瓷砖系统变成预制系统。还有其他想法吗?我希望有一种方法可以制作尺寸大于一块瓷砖的瓷砖(就像一棵树是一块瓷砖,就像预制刷一样,但只是瓷砖)
  • 另一个选项是定义树的碰撞器在哪里。碰撞器内的树的所有图块都在玩家/角色的后面(有一个“较低”的排序层),树的所有其他图块都在玩家的前面。为此,您需要两个不同的 tilemap:一个用于 Blocking tile,另一个用于“unblocking” tile。优点是所有现有对象,如树、房子和柱子,都由明确定义的阻挡瓷砖和解锁瓷砖组成,并且瓷砖地图碰撞器可以附加到瓷砖地图“BlockingTiles”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 2016-11-19
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多