Files
Cielonos/Assets/Scripts/MainGame/Characters/Base/Subcontrollers/CollisionSubcontrollerBase.cs
2026-05-10 11:47:55 -04:00

57 lines
1.9 KiB
C#

using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Cielonos.MainGame.Characters
{
public class CollisionSubcontrollerBase : SubcontrollerBase<CharacterBase>
{
public bool useCharacterController = true;
public Collider MainCollider => useCharacterController ? characterController : mainCollider;
public List<Collider> 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<Collider> otherColliders;
[Button("Collect Colliders")]
public void CollectColliders()
{
if (useCharacterController)
{
characterController = owner.GetComponent<CharacterController>();
}
else
{
mainRigidbody = owner.GetComponent<Rigidbody>();
mainCollider = owner.GetComponent<Collider>();
otherColliders = new List<Collider>(owner.GetComponentsInChildren<Collider>());
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;
}
}
}
}