protected virtual void RecieveRandomSeedSync(TCPMessageType tcpMessageType, object messageObj) { if (this.isDisconnected) { global::Debug.Log("RandomSeedSync: 切断中"); return; } global::Debug.Log("RandomSeedSync: 受信"); if (base.stateManager.rootState.currentState.GetType() != typeof(SubStateWaitRandomSeedSync)) { return; } RandomSeedSyncData randomSeedSyncData = TCPData <RandomSeedSyncData> .Convert(messageObj); if (this.CheckRecieveData(randomSeedSyncData.playerUserId, randomSeedSyncData.hashValue)) { return; } this.lastAction[TCPMessageType.RandomSeedSync] = delegate() { global::Debug.LogFormat("randomSeed:{0}", new object[] { randomSeedSyncData.randomSeed }); UnityEngine.Random.InitState(randomSeedSyncData.randomSeed); this.recieveChecks[TCPMessageType.RandomSeedSync] = true; }; this.SendConfirmation(tcpMessageType, randomSeedSyncData.playerUserId, string.Empty); }
public IEnumerator SendRandomSeedSync() { int randomSeed = (int)DateTime.Now.Ticks & 65535; RandomSeedSyncData message = new RandomSeedSyncData { playerUserId = ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId, hashValue = Singleton <TCPUtil> .Instance.CreateHash(TCPMessageType.RandomSeedSync, ClassSingleton <MultiBattleData> .Instance.MyPlayerUserId, TCPMessageType.None), randomSeed = randomSeed }; global::Debug.LogFormat("[RandomSeedSync送信] randomSeed:{0}", new object[] { randomSeed }); IEnumerator wait = base.stateManager.multiBasicFunction.SendMessageInsistently <RandomSeedSyncData>(TCPMessageType.RandomSeedSync, message, 2f); while (wait.MoveNext()) { object obj = wait.Current; yield return(obj); } UnityEngine.Random.InitState(randomSeed); yield break; }