这个和ActorMessageSender很像也有些许不同
首先和ActorMessageSender一样都需要每10秒进行一次Check
这里发现是搜索当前孩子,然后判断是否超时,然后移除
然后是Call
- 首先根据entityId找到组件下ActorLocationSender孩子实体,没有则会创建
-
然后将消息序列化,并且拿到ActorLocationSender的InstanceId,启用协程锁调用CallInner
CallInner 代码比较长 分2个图片
- 首先检测ActorLocationSender的ActorId是否为0,如果为0。将会通过entityId去利用LocationProxy发送消息去LocationComponent拿InstanceId赋值给ActorLocationSender的ActorId
- 然后利用ActorMessageSender发送消息。根据Response的结果进行不同操作
-
没有找到ERR_NotFoundActor=>等待0.5秒重试。超过20次就抛错。没啥错返回结果