| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*
- ------------------- 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<Renderer>();
- }
- 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;
- }
- }
- }
|