Quantcast
Channel: Answers for "Sprite layer order determined by Y value"
Viewing all articles
Browse latest Browse all 5

Answer by Muskar

$
0
0
An old question, but now the answer is either to pivot all your sprites to the bottom and then do the global **Edit ** -> **Project Settings** -> **Graphics** -> Transparency Sort Mode: Custom Axis + Transparency Sort Axis: X=0, Y=1, Z=0 But I wanted to do it by script: using UnityEngine; public enum SortingOrigin { Pivot, Bottom, Top, Left, Right } public enum SortingAxis { X, Y } [RequireComponent(typeof(Renderer))] public class LayerSorter : MonoBehaviour { [SerializeField] private int _originOrder = 100; [SerializeField] private float _precision = 1f; [SerializeField] private int _offset = 0; [SerializeField] private bool _runOnlyOnce = false; [SerializeField] private SortingOrigin _sortingSelector; [SerializeField] private SortingAxis _sortingAxis = SortingAxis.Y; private Renderer _renderer; private float _timeLeft; private float _updateFrequency = .1f; private void Awake () { _renderer = GetComponent(); } private void Start() { UpdateSortOrder(); if (_runOnlyOnce) { enabled = false; } } private void LateUpdate () { UpdateSortOrder(); } private void UpdateSortOrder() { _timeLeft -= Time.deltaTime; if (_timeLeft <= 0) { _timeLeft = _updateFrequency; Vector2 pos = _renderer.bounds.center; float width = _renderer.bounds.size.x; float height = _renderer.bounds.size.y; switch (_sortingSelector) { case SortingOrigin.Bottom: pos += Vector2.down * height / 2; break; case SortingOrigin.Top: pos += Vector2.up * height / 2; break; case SortingOrigin.Left: pos += Vector2.left * width / 2; break; case SortingOrigin.Right: pos += Vector2.right * width / 2; break; default: pos = transform.position; break; } float posFromAxis = _sortingAxis == SortingAxis.X ? pos.x : pos.y; _renderer.sortingOrder = (int)(_originOrder - posFromAxis / _precision + _offset); } } } Here's where I started: https://unity3d.com/learn/tutorials/topics/2d-game-creation/sorting-groups-and-transparency-sort-axis It also has some other good tips on sorting, like sorting groups.

Viewing all articles
Browse latest Browse all 5

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>