57 lines
1.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |