125 lines
3.3 KiB
C#
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
|
|
{
|
|
|
|
}
|
|
} |