Files
Cielonos/Assets/Scripts/MainGame/Characters/Base/Subcontrollers/CollisionSubcontrollerBase.cs

57 lines
1.9 KiB
C#
Raw Normal View History

2025-11-25 08:19:33 -05:00
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;
2025-12-08 05:27:53 -05:00
public List<Collider> hurtBoxes;
2025-11-25 08:19:33 -05:00
[ShowInInspector] [ShowIf("useCharacterController")]
public CharacterController characterController;
[ShowInInspector][HideIf("useCharacterController")]
public Rigidbody mainRigidbody;
[ShowInInspector] [HideIf("useCharacterController")]
public Collider mainCollider;
[ShowInInspector][HideIf("useCharacterController")]
2025-12-08 05:27:53 -05:00
public float mainColliderRadius;
[ShowInInspector][HideIf("useCharacterController")]
2025-11-25 08:19:33 -05:00
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);
}
}
2025-12-08 05:27:53 -05:00
public void DisableAllColliders()
{
foreach (Collider col in hurtBoxes)
{
col.enabled = false;
}
MainCollider.enabled = false;
2026-05-10 11:47:55 -04:00
2025-12-08 05:27:53 -05:00
foreach (Collider col in otherColliders)
{
col.enabled = false;
}
}
2025-11-25 08:19:33 -05:00
}
}