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);
}
}