2d:如何才能解决显示排序问题?
https://learn.unity.com/tutorial/zhuang-shi-shi-jie?uv=2019.4&projectId=5facf921edbc2a2003a58d3a#6073dddcedbc2a0021c5b6df
首先,向你创建的世界添加一些装饰:
1.在 Project 窗口中,选择 Assets > Art > Sprites > Environment。选择 MetalCube 精灵。
2.将 MetalCube 拖到 Hierarchy 窗口 以将其添加到场景中。
3. 使用移动工具(快捷键:w),将 MetalCube 置于场景中所需的位置。
4. 按 Ctrl + S (Windows/Linux) 或 Cmd + S (macOS) 来保存更改。
5.单击 Play 以进入运行模式,并围绕着立方体移动你的角色!
此时,Ruby 不会碰到金属立方体,而是从中穿过。她总是在立方体的上方或后面(取决于最先绘制的是哪个游戏对象)。
你将在下一教程中添加碰撞;现在,让我们关注如何解决游戏对象的排序问题。
如何才能解决排序问题?
你先前通过调整瓦片的 Order in Layer 属性来解决了瓦片地图的排序问题,但此方法在这里不合适,因为你并非总是希望一个游戏对象在另一个游戏对象之上。你需要“伪造”透视图。
根据直觉,玩家希望角色在立方体前面时首先绘制角色,而角色在立方体后面时最后绘制角色。
如果用更技术性的语言来说,你需要做的是指示 Unity 根据游戏对象的 y 坐标来绘制游戏对象(请记住,y 是垂直轴,x 是水平轴)。
屏幕上位置较低的游戏对象(y 坐标较小)应在屏幕上位置较高的游戏对象(y 坐标较大)之后绘制。这样将使位置较低的对象显示在上层。
要指示 Unity 根据游戏对象的 y 坐标来绘制游戏对象,请执行以下操作:
1.选择 Edit > Project Settings。 2. 在左侧类别菜单中,单击 Graphics。 3.在 Camera Settings 中,找到 Transparency Sort Mode 字段。此字段决定了精灵的绘制顺序。使用下拉菜单将此设置从 Default 更改为 Custom Axis。

让我们来看看 Ruby 的 Sprite Renderer:
1.在 Hierarchy 中,选择 Ruby 游戏对象。
2. 在 Inspector 中,找到该游戏对象的 Sprite Renderer 组件。
3. 找到 Sprite Sort Point 字段。目前,此字段设置为 Center,这意味着会使用精灵的中心点来决定这个游戏对象应该在另一个游戏对象的前面还是后面。 4.将 Sprite Sort Point 更改为 Pivot。

4.在 Transparency Sort Axis 中添加以下坐标:
-
x = 0
-
y = 1
-
z = 0
此设置告诉 Unity 在 y 轴上基于精灵的位置来绘制精灵。 5.关闭 Project Settings 窗口并保存你的更改。 6. 按 Play 以进入运行模式并测试你的更改。现在,你的角色比箱子高时,角色应该会绘制在箱子的后面;而角色比箱子低时,绘制在箱子的前面。 这只是一个开始,但并不完美,因为在箱子后面(而不是前面)绘制 Ruby 的时机似乎过早。为此解决此问题,你需要调整 Sprite Renderer 组件。
浙公网安备 33010602011771号