using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; namespace Cielonos.MainGame.Characters { public class CollisionSubcontrollerBase : SubcontrollerBase { public bool useCharacterController = true; public Collider MainCollider => useCharacterController ? characterController : mainCollider; public List hurtBoxes; [ShowInInspector] [ShowIf("useCharacterController")] public CharacterController characterController; [ShowInInspector][HideIf("useCharacterController")] public Rigidbody mainRigidbody; [ShowInInspector] [HideIf("useCharacterController")] public Collider mainCollider; [ShowInInspector][HideIf("useCharacterController")] public float mainColliderRadius; [ShowInInspector][HideIf("useCharacterController")] public List otherColliders; [Button("Collect Colliders")] public void CollectColliders() { if (useCharacterController) { characterController = owner.GetComponent(); } else { mainRigidbody = owner.GetComponent(); mainCollider = owner.GetComponent(); otherColliders = new List(owner.GetComponentsInChildren()); if(mainCollider != null) otherColliders.Remove(mainCollider); } } public void DisableAllColliders() { foreach (Collider col in hurtBoxes) { col.enabled = false; } MainCollider.enabled = false; foreach (Collider col in otherColliders) { col.enabled = false; } } } }