#pragma once #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 "Asset/Character/Chr_Shadow.h" #include "Global/Global_Enum.h" class CharacterObject : public ActiveObject { public: // 角色动画管理器 RefPtr _AnimationManager = nullptr; // 装备管理器 RefPtr _EquipmentManager = nullptr; // 角色控制器 RefPtr _Controller = nullptr; // 角色状态机 RefPtr _StateMachine = nullptr; // 角色阴影对象 RefPtr _Shadow = nullptr; // 职业 int Job = 0; // 转职职业 如果是-1则没有转职 int GrowType = -1; public: ~CharacterObject(); public: // 通过职业创建角色 void Construction(int job); // 开启控制器 void EnableController(); // 关闭控制器 void DisableController(); // 控制器信息 void ControllerMsg(CONTROLLER_MSG_TYPE msgType, void* msgData); void Update(float deltaTime) override; void SetPos(Vec2 pos) override; void SetDirection(int dir) override; };