//============================================================ public bool DataUnserialize(FByteStream input) { int count = input.ReadInt32(); for (int n = 0; n < count; n++) { string name = input.ReadStringA16(); if (_geometryDictionary.Contains(name)) { FDrGeometry geometry = _geometryDictionary.Get(name); if (!geometry.DataUnserialize(input)) { return(false); } } else { FDrGeometry geometry = new FDrGeometry(_model); if (!geometry.DataUnserialize(input)) { return(false); } RMoCore.TrackConsole.Write(this, "DataUnserialize", "Can't find geometry config in model. (model={0}, geometry={1})", _model.Code, name); } } return(true); }
//============================================================ // <T>执行处理。</T> //============================================================ public void ProcessMessage() { // 读取头信息 int length = _data.ReadInt32(); int type = _data.ReadUint8(); int level = _data.ReadUint8(); long tick = _data.ReadInt64(); int dataLength = length - 14; // 读取数据 byte[] data = new byte[dataLength]; _data.Read(data, 0, dataLength); string message = Encoding.ASCII.GetString(data); // 创建日志 FLoggerInfo loggerInfo = new FLoggerInfo(); loggerInfo.Tick = tick; loggerInfo.Level = level; loggerInfo.Message = message; // 放入应用中 FFrameInfo info = _applicationInfo.SyncFrame(tick); info.Loggers.Push(loggerInfo); }