using System.Collections; using System.Collections.Generic; using UnityEngine; public class CharacterBase : MonoBehaviour, IDamageable { public int Health = 5; public float Speed = 5; public Display Display; [SerializeField] protected List Footsteps = new List(); protected float _footstepDelay = 0.5f; protected float _footstepTimer = 0; protected CharacterController _cc; protected AudioSource _audioSource; public bool IsAlive() { return Health > 0; } protected virtual void Awake() { _cc = GetComponent(); _audioSource = GetComponent(); } protected virtual void Start () { } protected virtual void Update () { } protected void PlayFootstep() { if (Footsteps.Count == 0) return; if (!_audioSource.isPlaying) { if (_footstepTimer > 0) { _footstepTimer -= Time.deltaTime; } else { _audioSource.clip = Footsteps[Random.Range(0, Footsteps.Count)]; _audioSource.Play(); _footstepTimer = _footstepDelay; } } } public virtual void TakeDamage(int dmg) { if(Health > 0) { Health -= dmg; if (Health <= 0) { OnDeath(); } } } protected virtual void OnDeath() { //GameManager.Instance.PlaySound(DeathSound); //Destroy(this.gameObject); } }