hellbound/Assets/Sources/Feel/MMTools/Tools/MMAI/AIAction.cs

57 lines
1.6 KiB
C#
Raw Permalink Normal View History

2021-11-26 11:16:25 +03:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace MoreMountains.Tools
{
/// <summary>
/// Actions are behaviours and describe what your character is doing. Examples include patrolling, shooting, jumping, etc.
/// </summary>
public abstract class AIAction : MonoBehaviour
{
public string Label;
public abstract void PerformAction();
public bool ActionInProgress { get; set; }
protected AIBrain _brain;
/// <summary>
/// On Awake we grab our AIBrain
/// </summary>
protected virtual void Awake()
{
_brain = this.gameObject.GetComponentInParent<AIBrain>();
}
/// <summary>
/// On Start we trigger our init method
/// </summary>
protected virtual void Start()
{
Initialization();
}
/// <summary>
/// Initializes the action. Meant to be overridden
/// </summary>
protected virtual void Initialization()
{
}
/// <summary>
/// Describes what happens when the brain enters the state this action is in. Meant to be overridden.
/// </summary>
public virtual void OnEnterState()
{
ActionInProgress = true;
}
/// <summary>
/// Describes what happens when the brain exits the state this action is in. Meant to be overridden.
/// </summary>
public virtual void OnExitState()
{
ActionInProgress = false;
}
}
}