手册上关于层顺序的介绍基本没有,只是一个不明所以的Q&A一带而过:
层的排序是否重要?
是的。层的优先级是按顺序从上到下的。层设置为 override 将始终覆盖先前的层(如果层有遮罩,则基于其遮罩)。
基础层的权重值是否应始终设置为 1?或者在使用其他层时权重是否应为 0?
基础层权重始终为 1,覆盖层将完全覆盖基础层。
(原文:)
Does the ordering of the layers matter?
Yes. Layers are evaluated from top to bottom in order. Layers set to override will always override the previous layers (based on their mask, if they have a mask).
Should the weight value of the base layer always be set to one or should the weight be zero when using another layer?
The base layer weight is always 1 and override layers will completely override the base layer.
如何理解“优先级是按顺序从上到下”?
以及 两种混合模式 override 和 Additive 如何理解 ?
实践出真知。
实验方法:
我有一个2D角色,默认动画是 “闲置状态”(全身的动画,包含手部),在默认层 BaseLayer 。
它还有一个“开枪动作”(手部的特别动画),放在新建的动画层 arms 层。

为了明确不同混合方式达到的效果,
- 闲置状态的动画中,我将身体变为蓝色
。 - 开枪动作 中,我将身体变成红色
。
预期的结果是: 开枪时,如实播放开枪动作,身体呈现红色,则成功。如果是蓝色,失败。
实验结果记录:
| 层顺序 | arms层的 混合模式 | arms层的 权重 | 结果 |
上:Base Layer 下:arms | override | 1 | 红色(成功) |
| override | 0.5 | 紫色 | |
| additive | 1 | 蓝色 | |
上:arms 下:Base Layer | override | 1 | 蓝色 |
| additive | 1 | 蓝色 |

![]()
结论分析
- 顺序很重要:下方的层,会覆盖上方的层。
- 现在回到一开始的问题:如何理解“优先级是按顺序从上到下”?我的理解是:先计算上方的层,后计算下方的层,后面的结果可以修改之前的结果。跟Sprite的Sort Order一样去理解就可以了。
- override 模式: 覆盖位于它上方的层。
- 例如,多个层都控制某一属性,override层会覆盖其上方的层的效果,覆盖的程度取决于权重:
- 权重=1时,可以完全覆盖(所以结果呈红色);权重=0时,等于完全没有效果,以此类推。所以在上面的实验中,权重=0.5时,按比例混合其效果(0.5红+0.5蓝 = 紫)。
- additive 模式:
- 如果多个层都控制某一属性,additive层对其的控制无效。
- 只有additive层包含的其他层未控制的属性生效。
- 所以一般的做法就是,将 “特别的” 动画放在下面的层,选择override,权重=1,就可以完全播放该层的动画。
以上个人解读,如有谬误欢迎指正