您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
39 行
1.1 KiB
39 行
1.1 KiB
namespace UOP1.StateMachine
|
|
{
|
|
/// <summary>
|
|
/// Class that represents a conditional statement.
|
|
/// </summary>
|
|
public abstract class Condition : IStateComponent
|
|
{
|
|
/// <summary>
|
|
/// Specify the statement to evaluate.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public abstract bool Statement();
|
|
|
|
/// <summary>
|
|
/// Awake is called when creating a new instance. Use this method to cache the components needed for the condition.
|
|
/// </summary>
|
|
/// <param name="stateMachine">The <see cref="StateMachine"/> this instance belongs to.</param>
|
|
public virtual void Awake(StateMachine stateMachine) { }
|
|
public virtual void OnStateEnter() { }
|
|
public virtual void OnStateExit() { }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Struct containing a Condition and its expected result.
|
|
/// </summary>
|
|
public readonly struct StateCondition
|
|
{
|
|
internal readonly Condition _condition;
|
|
internal readonly bool _expectedResult;
|
|
|
|
public StateCondition(Condition condition, bool expectedResult)
|
|
{
|
|
_condition = condition;
|
|
_expectedResult = expectedResult;
|
|
}
|
|
|
|
public bool IsMet => _condition.Statement() == _expectedResult;
|
|
}
|
|
}
|