private void CreatedRemotePlayer(IRemotePlayer remotePlayer, object args) { PlayerID pid = _infra.ResolvePlayerID(args); NetworkArgs nargs = null; if (args is object[] argList) { if (argList.Length >= 2) { if (argList[1] is NetworkArgs result) { nargs = result; } } } IAvatar avatar = GetOrCreateAvatar(pid, nargs); avatar.SetAvatarController(remotePlayer); remotePlayer.PlayerID = pid; remotePlayer.OnDestroyingRemotePlayer += HandleRemotePlayerDestroying; OnCreatedRemotePlayer?.Invoke(avatar, remotePlayer); }
private void CreatedRemotePlayer(IRemotePlayer remotePlayer, object args) { PlayerID pid = _infra.ResolvePlayerID(args); IAvatar avatar = GetOrCreateAvatar(pid); avatar.SetAvatarController(remotePlayer); remotePlayer.PlayerID = pid; remotePlayer.OnDestroyingRemotePlayer += HandleRemotePlayerDestroying; OnCreatedRemotePlayer?.Invoke(avatar, remotePlayer); }