客户端登陆Gate时playerComponent.AddChild
PlayerComponent playerComponent = scene.GetComponent<PlayerComponent>();
Player player = playerComponent.AddChild<Player, string>(account);
playerComponent.Add(player);
但Session断线时
// 发送断线消息
ActorLocationSenderComponent.Instance.Send(self.PlayerId, new G2M_SessionDisconnect());
self.Domain.GetComponent<PlayerComponent>()?.Remove(self.PlayerId);
并未删除Child,请问这里是否有问题?我现在Player是从Db读出来的登录过的Id就会冲突,我想到的就是PlayerComponent.remove的时候同时移除Child
public static void Remove(this PlayerComponent self,long id)
{
var player = self.Get(id);
self.idPlayers.Remove(id);
player.Dispose();
}
这很合理吧?