这是第一个 Unity 开放项目的repo,是 Unity 和社区合作创建的一个小型开源游戏演示,第一款游戏是一款名为 Chop Chop 的动作冒险游戏。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

40 行
1.4 KiB

using UOP1.StateMachine.ScriptableObjects;
namespace UOP1.StateMachine
{
/// <summary>
/// An object representing an action.
/// </summary>
public abstract class StateAction : IStateComponent
{
internal StateActionSO _originSO;
/// <summary>
/// Use this property to access shared data from the <see cref="StateActionSO"/> that corresponds to this <see cref="StateAction"/>
/// </summary>
protected StateActionSO OriginSO => _originSO;
/// <summary>
/// Called every frame the <see cref="StateMachine"/> is in a <see cref="State"/> with this <see cref="StateAction"/>.
/// </summary>
public abstract void OnUpdate();
/// <summary>
/// Awake is called when creating a new instance. Use this method to cache the components needed for the action.
/// </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>
/// This enum is used to create flexible <c>StateActions</c> which can execute in any of the 3 available "moments".
/// The StateAction in this case would have to implement all the relative functions, and use an if statement with this enum as a condition to decide whether to act or not in each moment.
/// </summary>
public enum SpecificMoment
{
OnStateEnter, OnStateExit, OnUpdate,
}
}
}