/* ------------------- Code Monkey ------------------- Thank you for downloading the Code Monkey Utilities I hope you find them useful in your projects If you have any questions use the contact form Cheers! unitycodemonkey.com -------------------------------------------------- */ using UnityEngine; namespace CodeMonkey.MonoBehaviours { /* * Automatically sort a Renderer (SpriteRenderer, MeshRenderer) based on his Y position * */ public class PositionRendererSorter : MonoBehaviour { [SerializeField] private int sortingOrderBase = 5000; // This number should be higher than what any of your sprites will be on the position.y [SerializeField] private int offset = 0; [SerializeField] private bool runOnlyOnce = false; private float timer; private float timerMax = .1f; private Renderer myRenderer; private void Awake() { myRenderer = gameObject.GetComponent(); } private void LateUpdate() { timer -= Time.deltaTime; if (timer <= 0f) { timer = timerMax; myRenderer.sortingOrder = (int)(sortingOrderBase - transform.position.y - offset); if (runOnlyOnce) { Destroy(this); } } } public void SetOffset(int offset) { this.offset = offset; } } }