#pragma once #include "EngineFrame/Base/Actor.h" #include "Actor/Object/ActiveObject.h" #include "Asset/Character/Chr_Animation.h" #include "Asset/Character/Chr_Equipment.h" #include "Asset/Character/Chr_Controller.h" #include "Asset/Character/Chr_StateMachine.h" #include "Global/Global_Enum.h" class CharacterObject : public ActiveObject { public: // 角色动画管理器 RefPtr _AnimationManager = nullptr; // 装备管理器 RefPtr _EquipmentManager = nullptr; // 角色控制器 RefPtr _Controller = nullptr; // 角色状态机 RefPtr _StateMachine = nullptr; // 职业 int Job = 0; // 转职职业 如果是-1则没有转职 int GrowType = -1; /** 传送区域Flag */ bool IsTeleportArea = false; public: ~CharacterObject(); public: // 通过职业创建角色 void Construction(int job); // 开启控制器 void EnableController(); // 关闭控制器 void DisableController(); // 控制器信息 void ControllerMsg(CONTROLLER_MSG_TYPE msgType, void* msgData); void SetPosition(VecFPos3 pos) override; void SetDirection(int dir) override; void OnUpdate(float deltaTime) override; };