Unity SortingGroup使用记录
2023/12
16
13:12
如果一个Spine有多个层,多个Spine放在一起,需要给每个Spine身上挂一个SortingGroup,以保证其渲染层次是正确的
如果一个Spine的骨骼下,挂了多个Spine,这个父级Spine身上挂了SortingGroup,则其子节点的渲染次序,是按节点的树形结构进行渲染,而非Z值
SortingGroup在2D项目非常重要,他“要求”此节点下的物件打成一组(视为一个整体)渲染成为一层
在SortingGroup内部,可以使用SortingLayer和OrderInLayer进行排序
SortingLayer的优先级大于OrderInLayer的优先级
SortingLayer 可以理解为 – 地表 、 人物、HUD层;每层都会严格区分渲染层级
OrderInLayer 可以理解为,HUD层,每个HUD需要内部进行一个渲染层次排序
每个HUD,都需要使用一个SortingGroup,以保证每个玩家的HUD是一次性绘制完的,在SortingGroup上面,设置好OrderInLayer即可
using UnityEngine;
[RequireComponent(typeof(MeshRenderer))]
[ExecuteInEditMode]
public class TextMeshSort : MonoBehaviour
{
public string LayerName = "Layer1";
public int mSortingOrder = 99;
void Update()
{
var m = GetComponent<MeshRenderer>();
if (m != null)
{
var mSortingLayerId = SortingLayer.NameToID(LayerName);
m.sortingLayerID = mSortingLayerId;
m.sortingOrder = mSortingOrder;
}
}
}
CopyRights: The Post by BY-NC-SA For Authorization,Original If Not Noted,Reprint Please Indicate From 老刘@开发笔记
Post Link: Unity SortingGroup使用记录
Post Link: Unity SortingGroup使用记录