ET源码学习(十五):ActorLocationSenderComponent

这个和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次就抛错。没啥错返回结果




©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容