Files
Net.Like.Xue.Tokyo/Packages-Local/Com.Project.B.Unity/CharacterController/Core/ICharacterState.cs
2025-06-24 23:49:13 +08:00

125 lines
3.3 KiB
C#

using BITKit.Entities;
using BITKit.StateMachine;
using Net.Project.B.WorldNode;
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{}
public interface ICharacterStateAnimation : ICharacterState
{
public bool AllowCollision { get; set; }
}
/// <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{}
/// <summary>
/// 滑铲
/// </summary>
public interface ICharacterSliding:ICharacterState{}
/// <summary>
/// 游泳
/// </summary>
public interface ICharacterSwimming:ICharacterState{}
/// <summary>
/// 坐下
/// </summary>
public interface ICharacterSeating : ICharacterState
{
public UnitySeatNode SeatNode { get; set; }
public IEntity SeatEntity { get; set; }
}
/// <summary>
/// 爬梯子
/// </summary>
public interface ICharacterLadder : ICharacterState
{
public float3 UpPoint { get; set; }
public float3 DownPoint { get; set; }
}
/// <summary>
/// 降落伞
/// </summary>
public interface ICharacterParachute:ICharacterState{
}
/// <summary>
/// 自由落体
/// </summary>
public interface ICharacterFreeFall : ICharacterState
{
}
/// <summary>
/// 初始化
/// </summary>
public interface ICharacterInitialize : ICharacterState
{
}
}