56 lines
1.1 KiB
C#
56 lines
1.1 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System;
|
|
using UnityEngine;
|
|
|
|
namespace BF
|
|
{
|
|
[ExecuteInEditMode]
|
|
[DisallowMultipleComponent]
|
|
public class TimelineSortingOderHelper : BaseSortingOrderHelper
|
|
{
|
|
private Renderer[] renderers;
|
|
private List<int> originOrderList;
|
|
|
|
void Awake()
|
|
{
|
|
renderers = this.transform.GetComponentsInChildren<Renderer>(true);
|
|
int len = renderers.Length;
|
|
if (len > 0)
|
|
{
|
|
originOrderList = new List<int>(len);
|
|
for(int i = 0; i < len; i++)
|
|
{
|
|
originOrderList.Add(renderers[i].sortingOrder);
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void SetSortingOrder(int uiOrder, int order)
|
|
{
|
|
GroupOrder = order;
|
|
if (!ReferenceEquals(renderers, null))
|
|
{
|
|
int len = renderers.Length;
|
|
for(int i = 0; i < len; i++)
|
|
{
|
|
renderers[i].sortingOrder = originOrderList[i] + uiOrder + order;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void SetUIOrder(int uiOrder)
|
|
{
|
|
if (!ReferenceEquals(renderers, null))
|
|
{
|
|
int len = renderers.Length;
|
|
for(int i = 0; i < len; i++)
|
|
{
|
|
renderers[i].sortingOrder = originOrderList[i] + uiOrder + GroupOrder;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|