场景:同一个进程条件下,同时调用 sendToClient和ActorMessageSenderComponent.Instance.Send方法调用存在时序问题。
1、sendToClient的执行流程是(在actorLocationSender未获取到ActorId前提下):从Location服务器获取到对应实体ActorId(同进程会等下一帧执行) -> 调用 ActorMessageSenderComponent.Instance.Send 发送消息给ActorId (同进程会等下一帧执行)。
2、ActorMessageSenderComponent.Instance.Send 执行流程是:直接发消息给ActorId (同进程会等下一帧执行)。
问题:如果有一段代码如下:
functionA(){
`sendToClient(); //推送一条消息给自己,按上面的解释会等待2帧`
`ActorMessageSendComponent.Instance.Send(); //知道对方ActorId,直接通过ActorId发消息。按上面的解释会等待1帧`
}
执行顺序会变成下面的先执行,后面的后执行。