LocationManagerComponent
- Actor 定位服务的核心,在 LocationScene 上。
- LocationOneTypes 对定位类型进行分类。最大 LocationType.Max 个
- 作用是管理 LocationOneType,方法只有一个获取LocationOneType。
LocationOneType
- 作用是管理,Actor位置,以及Actor的锁信息。
- LocationManagerComponent 初始化的时候就已经创建。
- Add 添加一个Actor位置 收到 ObjectAddRequest 消息调用
- Remove 移除一个Actor位置 收到 ObjectRemoveRequest 消息调用
- Lock 获取一个Actor锁 收到 ObjectLockRequest 消息调用
- UnLock 移除一个Actor锁 收到 ObjectUnLockRequest 消息调用,或者Lock超时后调用
- Get 获取一个Actor位置
- 这些方法都是靠Actor消息来驱动。收到 ObjectGetRequest 消息调用
LocationProxyComponent
- 定位服务代理,需要定位服务的Scene需要这个。
- 按理说这个组件应该 与 MessageLocationSenderComponent 一起出现
- 对发送Location 消息进行包装作用。用来发包调用上方的LocationOneType中的方法。
MessageLocationSenderComponent
- 给不知道Actor具体位置的Acotr发送一条消息。MessageSender 是给已经知道位置的Actor发送消息。
- 定位服务 发送者
- 需要使用定位服务的Scene需要这个
- 管理 MessageLocationSenderOneType,对 MessageLocationSenderOneType 按LocationType分类。
MessageLocationSenderOneType
- 单个定位服务类型 发送者
- 用来给无法明确Actor位置的发送消息的方法
- 在发送的时候,会检查是否得到Actor位置,如果没有Actor位置,则使用LocationProxyComponent 获取Actor 位置后进行发送。
- 有两个发送消息的方法,两者的区别是,一个在找不到Actor位置时会重发,一个不会重发。
MessageLocationSender
- 用来绑定Actor,以及最近一次收发包的时间