using UnityEngine; [ExecuteInEditMode] public class SpriteOutline : MonoBehaviour { public Color color = Color.black; [Range(0, 16)] public int outlineSize = 1; private SpriteRenderer spriteRenderer; private void Awake() { spriteRenderer = this.GetComponent<SpriteRenderer>(); } private void OnEnable() { updateOutline(true); } private void OnDisable() { updateOutline(false); } void updateOutline(bool outline) { MaterialPropertyBlock mpb = new MaterialPropertyBlock(); spriteRenderer.GetPropertyBlock(mpb); float o = 0; if(outline) { o = 1f; } else { o = 0; } mpb.SetFloat("_Outline", o); mpb.SetColor("_OutlineColor", color); mpb.SetFloat("_OutlineSize", outlineSize); spriteRenderer.SetPropertyBlock(mpb); } }