- Implemented WeaponFeedback class for handling weapon-related feedbacks such as hit effects and attack sounds. - Added meta file for AddressableManagerWindow to manage addressable assets. - Included a new jump.data file for profiler data.
42 lines
1.3 KiB
C#
42 lines
1.3 KiB
C#
namespace BaseGames.Player.States
|
||
{
|
||
/// <summary>
|
||
/// 死亡状态(架构 05_PlayerModule §2)。
|
||
/// 冻结物理(ZeroVelocity + 关闭重力),播放 Dead 动画;
|
||
/// 不自动转出 — 由 DeathRespawnSystem 通过 EVT_PlayerRespawned 触发重置。
|
||
/// </summary>
|
||
public class DeadState : PlayerStateBase
|
||
{
|
||
public DeadState(PlayerController owner) : base(owner) { }
|
||
|
||
public override void OnStateEnter()
|
||
{
|
||
// 冻结物理
|
||
Move?.ZeroVelocity();
|
||
Move?.SetGravityScale(0f);
|
||
|
||
// 禁用 HurtBox(防止重复受击)
|
||
if (Owner.HurtBox != null)
|
||
Owner.HurtBox.SetActive(false);
|
||
|
||
Feedback.PlayDeath();
|
||
|
||
// 播放死亡动画
|
||
if (AnimCfg?.Dead != null)
|
||
Anim?.Play(AnimCfg.Dead);
|
||
}
|
||
|
||
public override void OnStateExit()
|
||
{
|
||
// 复活时恢复重力和 HurtBox
|
||
Move?.SetGravityScale(Owner.MovConfig.DefaultGravityScale);
|
||
if (Owner.HurtBox != null)
|
||
Owner.HurtBox.SetActive(true);
|
||
}
|
||
|
||
// 死亡状态不接受任何输入或状态转换
|
||
public override void OnStateUpdate() { }
|
||
public override void OnStateFixedUpdate() { }
|
||
}
|
||
}
|