/// <summary> /// ログインリクエスト受信 /// </summary> /// <param name="Stream">ストリーム</param> /// <returns>結果パケット</returns> private IPacket OnRecvLogInRequest(IDictionaryStream Stream) { PacketLogInRequest Request = new PacketLogInRequest(); Request.Serialize(Stream); Parent.SetNextState(new GameStatePreActive(Parent)); // 今のところ問答無用 PacketLogInResult Result = new PacketLogInResult(); return(Result); }
void Awake() { GameServerConnection.PacketMethods[PacketID.LogInResult] = (Stream) => { PacketLogInResult Result = new PacketLogInResult(); Result.Serialize(Stream); if (Result.Result != (byte)PacketLogInResult.ResultCode.Success) { LogInFailedSubject.OnNext((PacketLogInResult.ResultCode)Result.Result); return; } Character.Player.PlayerData.PlayerId = Result.CharacterId; LogInSuccessSubject.OnNext(Unit.Default); }; }
void Awake() { UIManager.Instance.Show<TitleScreen>("TitleScreen").Instance.OnLogInButtonPressed .Subscribe(_ => { NetworkCore.Instance.Connect(); }).AddTo(gameObject); NetworkCore.Instance.OnNetworkStatusChanged .Where((Code) => Code == StatusCode.Connect) .Subscribe((_) => { NetworkCore.Instance.SendRequest(new PacketLogInRequest(), EPacketID.LogInResult, (Stream) => { var Packet = new PacketLogInResult(); Packet.Serialize(Stream); // 今のところ問答無用でログイン成功 Debug.Log("ログイン成功"); SceneManager.LoadScene("Game"); }); }).AddTo(gameObject); }