c1_unity/Assets/Scripts/Component/Helper/TimelineSortingOderHelper.cs
2023-04-03 11:04:31 +08:00

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;
}
}
}
}
}