using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[ExecuteInEditMode]
public class ToonOutline : MonoBehaviour
{
   public Color color = Color.black;

   [Range(0, 3)]
   public float outlineSize = 1f;

   private MeshRenderer meshRenderer;

   private void Awake()
   {
      meshRenderer = this.GetComponent<MeshRenderer>();
   }

   private void OnEnable()
   {
      updateOutline(true);
   }

   private void OnDisable()
   {
      updateOutline(false);
   }

   void updateOutline(bool outline)
   {
      MaterialPropertyBlock mpb = new MaterialPropertyBlock();
      meshRenderer.GetPropertyBlock(mpb);

      float size = 0;
      if (outline)
      {
         size = outlineSize;
      }

      else
      {
         size = 0;
      }

      mpb.SetColor("_OutlineColor", color);
      mpb.SetFloat("_OutlineSize", size);
      meshRenderer.SetPropertyBlock(mpb);
   }
}