分析类图
2016-05-25 09:26:13 0 举报
由于您没有提供具体的类图,我无法为您生成详细的描述。但是,我可以为您提供一个通用的模板: ”该类图展示了系统的主要组件及其之间的关系。在图中,我们可以看到几个主要的类,如A、B和C。类A与类B有直接的关系,表示它们之间的某种交互或依赖。同时,类B和类C也有关联,但这种关系可能是间接的或者是通过其他类实现的。此外,类D是整个系统的入口点,它可能负责初始化系统或处理用户的输入。通过分析这个类图,我们可以更好地理解系统的结构和功能,并为后续的设计和开发工作提供指导。” 如果您提供具体的类图,我可以为您生成更详细的描述。
作者其他创作
大纲/内容
ResourcesLoader
......
ITearDownSystem(第三方接口)
+ TearDown():void
UIEmotionWindow
Entitas.IAERC(第三方接口)
+ retainCount:int
+ retain(owner:object):void+ release(owner:object):void
UIWindowManager(单例,用栈管理UI界面)
- mDicWindowInfo:Dictionary- mWindowStack:List<UIWindowInfo>- mDicLayerWindowInfo:Dctionary
+ ShowWindow<T>(UIWindowType...):T 显示界面+ HideWindow(Type t):void 隐藏界面+ DestroyWindow<T>():bool 销毁界面+ UpdateLayer():void 更新层级+ Update():void+ UpdateKeyCode():void 刷新键盘事件?
LifeUtil
+ InitXXX(this LogicEntity entity)
CharacterCameraController 跟随玩家的相机
更新场景状态数据
UIWindow
+ layer:float+ bShowMaskBG:bool+ windowType:Type+ keyCodeGroup:UIKeyCodeGroup
+ UpdateKeyCode():virtual void+ OnCreated(object param):virtual void+ Show(object param):virtual void+ Hide():void+ closeCallBack:CloseCallBack+ Close():void+ IsActive():bool
ECS
+ Feature:Feature
- InitSystem():void 添加各种系统,如CharacterCtrlSystem、SkillCtrlSystem等等+ Update():static void Update里执行Feature.Execute(),刷新各个System
GameFramework(Launcher时被创建,挂载在一个GameObject上)
+ state:GameState
+ InitEditor():void+ Init():void+ Update:void
IInitializeSystem(第三方接口)
+ Initiallize():void
LevelConfig 关卡配置类
ClientNetModule调用NetManager
SkillCtrlSystem
UIBattleFlowWindow
连接服务器
StateMsg
+ frame:int+ entitys_merge_list: repeated EntitySyncData 运行时entity的增量数据
StateAttributeUtil
SkillSyncData
各种组件的扩展类
GridManager(单例)
SkillCtrlSyncData
EntityUnityHandler挂载在场景里Logic对象上,主要用于碰撞检测
+ logicEntity:LogicEntity+ entityType:EntityType
- OnTriggerEnter(collision:Collider):void 以碰撞体检测为驱动来检测攻击、采集等操作是否成功
CharacterUtil
CharacterCtrlUtil控制角色的移动、旋转等表现
EntitySyncData
MonoBehaviour
...
ClientRoomManager(单例)记录同一场景内的玩家数据
+ Init():void+ AddPlayer():void+ GetPlayerInfoById():PlayerInfo+ GetPlayerId():uint
OnLoadBattleRsp后,得到配置数据
Entitas.IComponent(第三方接口)
Entitas.IEntity(第三方接口)
+ OnComponentAdded:event+ OnComponentRemoved:event+ OnComponentReplaced:event+ OnEntityReleased:event+ OnDestroyEntity:event......
StateAttributeData记录角色的各种状态,如行走状态、跑步状态、采集状态等
UIBattleModule(单例)
- OnClientBattleState():void //创建游戏中各个界面,ClientBattleState改变时触发
CreateEntity时,调用LogicEntity的Init
Update里执行ServerNetModule.Update
ClientRecorder 录像功能类
UIBattleMain
ServerFramework(单例,进入游戏场景后会挂载在一个GameObject上)
InputController 接收客户端的键鼠输入
BattleEventManager
+ ChangeClientBattleState:string+ ChangeServerBattleState:string+ CreateEntity:string+ DestroyEntity:string+ EntityExposedEvent:string+ PlayerNearbyEvent:string 可见性+ StateChangeEvent:string+ ServerBattleEnd:string+ SlotChange:string 背包相关+ PropCollectionsChange:string+ OpenUIBagDead:string+ CloseUINotity:string+ HeadMouseDown:string+ HeadMouseUp:string+ FeelingChange:string- mView:EventDispatch- mEntity:MultiEventDispatch
+ Init():void
PropCollectionsSyncData
ISystem(第三方接口)
EffectManager(单例)
OnLoadBattleRsp后,GridManager获得地形数据
CharacterCtrlSystem
ComponentBase
CharacterCtrlData记录角色的各种数据比如速度等
Feature
- executeSystemNames:List<string>......
+ Add(system:Entitas.ISystem):void+ Execute():void......
Init()初始化
ResourceManager(单例)
SwitchBattleState
IResourceLoader
ConfigManager(单例)
LogicUpdate里执行ECS.Update
EventDispatch 事件分发器
各种组件(这些组件的数据里面也包含了ProtocolBuf生成的数据类数据)
SearchManager(单例)
UIBattleMainBinding
CharacterSyncData
CommandSystem(单例)
DataConfigList 配置类
WeaponSystem
CreateEntity后调用BattleEventManager.View.TriggerEvent通知表现层创建DestroyEntity后也一样会通知表现层销毁实体
CachedMonoBehaviour(专门用来缓存的?缓存啥?)
+ GetCachedComponent<T>():T
DataSynced时,调用LogicEntity的DataSynced
IExecuteSystem(第三方接口)
+ Execute():void
ClientNetModule(单例)
+ userId:int+ camp:uint+ characterId:uint
+ Init():void+ Update():void+ OnDestroy():void+ OnConnectCallback():void+ AddEvent():void 绑定消息的回调,客户端需要处理的服务器消息大部分在这里+ RequestLoadBattle():void 请求加载战斗+ OnLoadBattleRsp():void 收到服务器加载战斗的应答- OnRecvStateNotify():void 收到战斗状态变更的消息,合并增量的state消息
LaunchHelper(游戏启动入口)
+ RunLocal():void
MultiEventDispatch 多事件分发器
BattleFramework(单例)
+ instance:BattleFramework+ state:StateMsg 全局最终要的同步结构体
- Awake():void+ Start():void+ Update():void+ LogicUpdate():void
Game
+ ConnId:UInt32+ Ping:int+ Dispatcher:UnityMainThreadDispatcher
+ Init():void 创建一个UnityMainThreadDispatcher
进入场景,收到消息,创建Entity
UnityMainThreadDispatcher该类把传入的回调放到Unity主线程执行,如果开了分线程且某些函数不想放到分线程里执行(比如UI操作),可以把这些函数传给该类让该类在主线程的Update里执行
- _executionQueue:Queue<Action>
+ Update:void //处理待执行的协程队列+ Enaueue:void //外部传入的协程以回调的形式入队列......
IGroup<TEntity>
ClientFramework(单例,进入游戏场景后会挂载在一个GameObject上)
ClientBattleData 客户端战斗数据
- mBattleState:ClientBattleState(初始状态、连接上战斗服、加载战斗、加载完成、战斗中、战斗结束、结算)- battleMode:BattleMode(常规模式、录像模式)......
+ SwitchBattleState(ClientBattleState battleState):void 场景状态数据切换,同时伴随着触发BattleEventManager.ChangeClientBattleState事件
ResourceMgr(第三方工具类,单例)
ClientModule(单例)
Context<LogicEntity> 第三方类
+ OnEntityCreated:event+ OnEntityWillBeDestroyed:event+ OnGroupCreated:event- _totalComponents:int- _componentPools:Stack<IComponent>[]- _contextInfo:ContextInfo- _aercFactory:delegate- _entityFactory:delegate- _entities:HashSet<TEntity>......
+ CreateEntity:TEntity+ AddEntity(TEntity):void+ DestroyAllEntities():void+ HasEntity(TEntity):bool+ GetEntities():TEntity[]+ GetGroup(IMatcher<TEntity>):IGroup<TEntity>......
BundleVersion(版本配置)
+ BundleVersionPath:string+ DEBUG_BUNDLE_VERSION:string+ DEBUG_BUNDLE_BUILD_CODE:uint+ INVAILD_VERSION:string+ INVAILD_VERSION2:string+ curVersion:BundleVersion+ bundleVersion:string+ builtinResVersion:string+ bundleBuildCode:uint+ builtinResBuildCode:uint
+ BuildBundleVersion:void 项目工具/打包编译/BuildBundleVersion+ SaveBundleVersion:void+ LoadBundleVersion:void
LifeData
ServerRoomManager(单例)
UIBattleObTip
ComponentData
+ entity:LogicEntity
LogicEntityManager(单例)
+ instance:LogicEntityManager- mMaxEntityID:uint- mState:StateMsg
+ Init():void+ CreateEntity(IList<EntitySyncData>):void+ CreateEntity(EntitySyncData):LogicEntity 服务器和客户端都用,服务器使用后会发送消息通知其他客户端有实体创建了,然后客户端再调用CreateEntity创建实体+ DestroyEntity(entityIDList):void+ DataSynced(IList<EntitySyncData> lstEntityData):void 数据的同步+ CollectState(float syncFrameTime):void 服务器用,收集?+ GetKey(LogicEntity entity):uint
NetManager(单例)功能:建立连接、发送消息、注册和取消注册协议
BaseResLoader
ServerNetModule(单例)
- instance:ServerNetModule
+ Update():void+ OnPlayerDisconnect(connection:uint):void 玩家断开连接+ AddEvent():void 注册协议回调+ OnLoadComplete(obj:NetworkObj):void 处理玩家加载完成后的事情+ OnLeaveBattleReq(obj:NetworkObj):void 处理玩家离开游戏的请求+ OnRecvGMCommand(obj:NetworkObj):void 处理GM命令+ OnRecvActionMove(obj:NetworkObj):void 处理移动消息+ OnRecvActionRotation(obj:NetworkObj):void 处理旋转消息+ OnRecvActionPickProp(value:NetworkObj):void 处理拾取消息+ OnRecvUseProp(value:NetworkObj):void 处理使用道具+ OnDropProp(value:NetworkObj):void 处理掉落道具......
ProtocolBuf生成的数据类
LogicEntity
+ Init(data:EntitySyncData):void 初始化数据,根据服务器传来的数据添加对应的ComponentData+ CollectData(syncFrameTime:float)+ DataSynced(changeData:EntitySyncData) 更新各个组件的信息
Entitas.Systems(第三方类)
- _initializeSystems:List<IInitializeSystem>- _executeSystems:List<IExecuteSystem>- _cleanupSystems:List<ICleanupSystem>- _tearDownSystems:List<ITearDownSystem>
+ Add(system:ISystem):virtual void+ Initialize():virtual void+ Execute():virtual void+ Cleanup():virtual void+ TearDown():virtual void......
LogicEntityUtil(静态工具类,只有函数,无成员对象)
UIBattleBuffList
Entitas.Entity(第三方类)
各种系统
ICleanupSystem(第三方接口)
+ Cleanup():void
创建了实体后会把实体存入SearchManager中供以后查找销毁实体的时候也会从SearchManager中移除实体
CharacterCtrlSyncData
移动方向移动速度......
CharacterData
StateAttributeSyncData
角色主状态角色子状态......
NetManagerKCP 网络连接协议类
- m_network:KCP.BaseNetwork
UIBattleInfos
0 条评论
下一页