From 5b19af7f51ad4504fc426b8387442f6b868b5f61 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 30 Sep 2021 18:15:25 +0800 Subject: *misc --- Assets/Scripts/Rendering/CustomRenderer.cs | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Assets/Scripts/Rendering/CustomRenderer.cs (limited to 'Assets/Scripts/Rendering/CustomRenderer.cs') diff --git a/Assets/Scripts/Rendering/CustomRenderer.cs b/Assets/Scripts/Rendering/CustomRenderer.cs new file mode 100644 index 00000000..07c6ec7f --- /dev/null +++ b/Assets/Scripts/Rendering/CustomRenderer.cs @@ -0,0 +1,50 @@ +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); + } + +} -- cgit v1.1-26-g67d0