Last active
January 13, 2016 16:15
-
-
Save steamb23/00d5188186d1e218a766 to your computer and use it in GitHub Desktop.
AutoSortingOrderManager / Licence : MIT
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
using System.Collections.Generic; | |
public class AutoSortingOrderManager : MonoBehaviour | |
{ | |
SortedList<int, List<SpriteRenderer>> sortList = new SortedList<int, List<SpriteRenderer>>(); | |
public int minSortingOrder = 0; | |
bool isStart; | |
public bool IsStart | |
{ | |
get | |
{ | |
return isStart; | |
} | |
} | |
void Start() | |
{ | |
this.isStart = true; | |
SortOrder(); | |
} | |
public void Add(int orderInLayer, SpriteRenderer spriteRenderer) | |
{ | |
ListAdd(orderInLayer, spriteRenderer); | |
if (IsStart) | |
SortOrder(); | |
} | |
public void Remove(int sortingOrder, SpriteRenderer spriteRenderer) | |
{ | |
List<SpriteRenderer> spriteRendererList; | |
if (!sortList.TryGetValue(sortingOrder, out spriteRendererList)) | |
{ | |
return; | |
} | |
spriteRendererList.Remove(spriteRenderer); | |
} | |
void ListAdd(int sortingOrder, SpriteRenderer spriteRenderer) | |
{ | |
List<SpriteRenderer> spriteRendererList; | |
if (!sortList.TryGetValue(sortingOrder, out spriteRendererList)) | |
{ | |
spriteRendererList = new List<SpriteRenderer>(); | |
sortList.Add(sortingOrder, spriteRendererList); | |
} | |
spriteRendererList.Add(spriteRenderer); | |
} | |
void SortOrder() | |
{ | |
int i = 0; | |
foreach (var temp in sortList) | |
{ | |
List<SpriteRenderer> value = temp.Value; | |
foreach (SpriteRenderer spriteRenderer in value) | |
{ | |
spriteRenderer.sortingOrder = i++; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment