73 lines
2.0 KiB
C#
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{}
|
|
} |