private void RollbackTo(int tick, int maxContinueServerTick, bool isNeedClear = true)
        {
            _world.RollbackTo(tick, maxContinueServerTick, isNeedClear);
            var hash    = _commonStateService.Hash;
            var curHash = _hashHelper.CalcHash();

            if (hash != curHash)
            {
                Debug.LogError($"Rollback error: Hash isDiff oldHash ={hash}  curHash{curHash}");
            }
        }
Ejemplo n.º 2
0
        public void DumpToFile(bool withCurFrame = false)
        {
            if (!enable)
            {
                return;
            }
#if UNITY_EDITOR
            var path = dumpPath + "/cur.txt";
            var dir  = Path.GetDirectoryName(path);
            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            //var minTick = _tick2OverrideFrameData.Keys.Min();
            StringBuilder sbResume = new StringBuilder();
            StringBuilder sbRaw    = new StringBuilder();
            for (int i = 0; i <= Tick; i++)
            {
                sbRaw.AppendLine(_tick2RawFrameData[i].ToString());
                sbResume.AppendLine(_tick2OverrideFrameData[i].ToString());
            }

            File.WriteAllText(dumpPath + "/resume.txt", sbResume.ToString());
            File.WriteAllText(dumpPath + "/raw.txt", sbRaw.ToString());
            if (withCurFrame)
            {
                _curSb = DumpFrame();
                var curHash = _hashHelper.CalcHash(true);
                File.WriteAllText(dumpPath + "/cur_single.txt", _curSb.ToString());
                File.WriteAllText(dumpPath + "/raw_single.txt", _tick2RawFrameData[Tick].ToString());
            }

            UnityEngine.Debug.Break();
#endif
        }
Ejemplo n.º 3
0
        private bool RollbackTo(int tick, int maxContinueServerTick, bool isNeedClear = true)
        {
            _world.RollbackTo(tick, maxContinueServerTick, isNeedClear);
            var hash    = _commonStateService.Hash;
            var curHash = _hashHelper.CalcHash();

            if (hash != curHash)
            {
                Debug.LogError($"tick:{tick} Rollback error: Hash isDiff oldHash ={hash}  curHash{curHash}");
#if UNITY_EDITOR
                _dumpHelper.DumpToFile(true);
                return(false);
#endif
            }
            return(true);
        }