From ee4d8f4187059f177c17c8c818352826c6347d38 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 5 Aug 2021 20:05:44 +0800 Subject: *misc --- Assets/Scripts/Unit/Component/UnitCollider.cs | 31 ++++++++++++++++++++++++++ Assets/Scripts/Unit/Component/UnitComponent.cs | 10 +++++++++ 2 files changed, 41 insertions(+) (limited to 'Assets/Scripts/Unit/Component') diff --git a/Assets/Scripts/Unit/Component/UnitCollider.cs b/Assets/Scripts/Unit/Component/UnitCollider.cs index 2630cb91..57585ba2 100644 --- a/Assets/Scripts/Unit/Component/UnitCollider.cs +++ b/Assets/Scripts/Unit/Component/UnitCollider.cs @@ -2,12 +2,43 @@ using System.Collections.Generic; using UnityEngine; +public class ColliderRegistry : Singleton +{ + public List colliders = new List(); + + public void AddCollider(UnitCollider collider) + { + if (!colliders.Contains(collider)) + colliders.Add(collider); + } + + public void RemoveCollider(UnitCollider collider) + { + if (colliders.Contains(collider)) + colliders.Remove(collider); + } +} + // 角色当前的碰撞盒 [DisallowMultipleComponent] public class UnitCollider : UnitComponent { public bool showGizmos; + public override void Awake() + { + base.Awake(); + + ColliderRegistry.Instance.AddCollider(this); + } + + public override void OnDestroy() + { + ColliderRegistry.Instance.RemoveCollider(this); + + base.OnDestroy(); + } + public override void Initialize() { base.Initialize(); diff --git a/Assets/Scripts/Unit/Component/UnitComponent.cs b/Assets/Scripts/Unit/Component/UnitComponent.cs index 6c8dc916..1e4df1fc 100644 --- a/Assets/Scripts/Unit/Component/UnitComponent.cs +++ b/Assets/Scripts/Unit/Component/UnitComponent.cs @@ -4,6 +4,8 @@ using UnityEngine; public class UnitComponent : MonoBehaviour { + public UnitController owner { get { return m_Owner; } } + protected UnitController m_Owner; public bool IsAlive @@ -14,6 +16,14 @@ public class UnitComponent : MonoBehaviour } } + public virtual void Awake() + { + } + + public virtual void OnDestroy() + { + } + public virtual void Initialize() { m_Owner = GetComponent(); -- cgit v1.1-26-g67d0