|  |  |  | 
|---|
|  |  |  | using System.Collections.Generic; | 
|---|
|  |  |  | using UnityEngine; | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using Spine.Unity; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class RendererAdjuster : MonoBehaviour | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<Renderer> renderers = new List<Renderer>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // private List<SkeletonAnimation> skeletonAnimations = new List<SkeletonAnimation>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | protected Canvas canvas; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int canvasOffset = 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public Action<string, int> onSortingChanged; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | public void SetSortingOrder(int sortingOrder) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | this.sortingOrder = sortingOrder; | 
|---|
|  |  |  | UpdateComps(); | 
|---|
|  |  |  | UpdateSortingOrder(); | 
|---|
|  |  |  | UpdateLayer(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | protected void UpdateComps() | 
|---|
|  |  |  | 
|---|
|  |  |  | renderers.Clear(); | 
|---|
|  |  |  | renderers.AddRange(gameObject.GetComponentsInChildren<Renderer>(true)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | canvas = GetComponent<Canvas>(); | 
|---|
|  |  |  | // skeletonAnimations.Clear(); | 
|---|
|  |  |  | // skeletonAnimations.AddRange(gameObject.GetComponentsInChildren<SkeletonAnimation>(true)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | canvas = GetComponentInChildren<Canvas>(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | [ContextMenu("UpdateLayer")] | 
|---|
|  |  |  | private void UpdateLayer() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | UpdateComps(); | 
|---|
|  |  |  | UpdateSortingOrder(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void UpdateSortingOrder() | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null != canvas) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | canvas.sortingOrder = sortingOrder; | 
|---|
|  |  |  | canvas.sortingOrder = sortingOrder + canvasOffset; | 
|---|
|  |  |  | if (!string.IsNullOrEmpty(sortingLayer)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | canvas.sortingLayerName = sortingLayer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // foreach (var skeletonAnim in skeletonAnimations) | 
|---|
|  |  |  | // { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | onSortingChanged?.Invoke(sortingLayer, sortingOrder); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|