using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(Renderer))] public class CustomRenderer : MonoBehaviour { public new Renderer renderer { get; private set; } void OnEnable() { renderer = GetComponent(); CustomRendererRegistry.Instance.Register(this); } void OnDisable() { CustomRendererRegistry.Instance.Unregister(this); } } public class CustomRendererRegistry : Singleton { private List m_Renderers; public List renderers { get { if (m_Renderers == null) m_Renderers = new List(); return m_Renderers; } } public void Register(CustomRenderer renderer) { if(!renderers.Contains(renderer)) { renderers.Add(renderer); } } public void Unregister(CustomRenderer renderer) { renderers.Remove(renderer); } }