Net.Project.B/Src/CharacterController/ICharacterState.cs

73 lines
2.0 KiB
C#

using BITKit.StateMachine;
using Unity.Mathematics;
namespace Project.B.CharacterController
{
/// <summary>
/// 角色状态
/// </summary>
public interface ICharacterState : IState
{
public void UpdateVelocity(ref float3 currentVelocity, float deltaTime);
public void UpdateRotation(ref float3 localPosition, ref quaternion currentRotation,
ref quaternion viewRotation, float deltaTime);
public void BeforeUpdateVelocity(float deltaTime);
public void AfterUpdateVelocity(float deltaTime);
}
/// <summary>
/// 角色状态数据
/// </summary>
public interface ICharacterStateData
{
public float BaseHeight { get; }
public float BaseSpeed { get; }
public float2 ViewOffset { get; }
}
/// <summary>
/// 空状态
/// </summary>
public interface ICharacterStateEmpty:ICharacterState{}
/// <summary>
/// 静止
/// </summary>
public interface ICharacterStateIdle:ICharacterState{}
/// <summary>
/// 行走
/// </summary>
public interface ICharacterStateWalk:ICharacterState{}
/// <summary>
/// 蹲下
/// </summary>
public interface ICharacterStateCrouched:ICharacterState{}
/// <summary>
/// 奔跑
/// </summary>
public interface ICharacterStateRun:ICharacterState{}
/// <summary>
/// 战术跑
/// </summary>
public interface ICharacterSprint:ICharacterState{}
/// <summary>
/// 在空中,包括跳跃、下落、飞行等
/// </summary>
public interface ICharacterStateInAir:ICharacterState{}
/// <summary>
/// 爬上低障碍物
/// </summary>
public interface ICharacterStateStepUp:ICharacterState{}
/// <summary>
/// 翻阅障碍物
/// </summary>
public interface ICharacterStateVault:ICharacterState{}
/// <summary>
/// 攀爬
/// </summary>
public interface ICharacterStateClimb:ICharacterState{}
/// <summary>
/// 被击倒
/// </summary>
public interface ICharacterKnocked:ICharacterState{}
}