ServerCharacte
概述
ServerCharacter是 Unity Boss Room 项目中服务器端角色逻辑的核心实现,负责管理角色的网络状态、动作执行、AI行为、伤害处理等服务器权威逻辑。它与客户端的ClientCharacter分离,实现了清晰的客户端-服务器架构。
核心功能与设计
1. 组件化架构
ServerCharacter采用组件化设计,通过依赖注入和组件引用管理多个功能模块:
[RequireComponent(typeof(NetworkHealthState),typeof(NetworkLifeState),typeof(NetworkAvatarGuidState))]publicclassServerCharacter:NetworkBehaviour,ITargetable关键依赖组件:
NetworkHealthState:管理角色生命值的网络同步NetworkLifeState:管理角色的生存状态(Alive/Fainted/Dead)ServerActionPlayer:执行角色动作的核心系统ServerCharacterMovement:处理角色移动逻辑AIBrain:AI角色的行为控制器(仅NPC使用)
2. 网络状态管理
ServerCharacter使用NetworkVariable管理所有需要同步的状态,确保服务器权威:
publicNetworkVariable<MovementStatus>MovementStatus{get;}=newNetworkVariable<MovementStatus>();publicNetworkVariable<bool>IsStealthy{get;}=newNetworkVariable<bool>();publicNetworkVariable<ulong>TargetId{get;}=newNetworkVariable<ulong>();publicNetworkVariable<ulong>HeldNetworkObject{get;}=newNetworkVariable<ulong>();核心状态:
- 生命值和生存状态(通过
NetHealthState和NetLifeState组件) - 移动状态和目标位置
- 隐身状态
- 当前目标ID
- 持有物品状态
3. 动作系统集成
ServerCharacter作为动作系统的核心入口,处理客户端的动作请求并执行相应逻辑:
[Rpc(SendTo.Server)]publicvoidServerPlayActionRpc(ActionRequestDatadata){// 处理动作请求PlayAction(refdata);}publicvoid<