internal byte[] Serialize() { FlatBufferBuilder fbb = new FlatBufferBuilder(1); //serialize players GameResultInfoS.StartPlayerResultsVector(fbb, PlayerResults.Count); var playersOffset = new Offset <PlayerResultInfoS> [PlayerResults.Count]; for (int i = 0; i < PlayerResults.Count; i++) { playersOffset[i] = PlayerResults[i].Create(ref fbb); } //nested tables needs to be CREATED before START VectorOffset playersVectorOffset = GameResultInfoS.CreatePlayerResultsVector(fbb, playersOffset); //serialize whole game init info GameResultInfoS.StartGameResultInfoS(fbb); GameResultInfoS.AddPlayTime(fbb, PlayTime); GameResultInfoS.AddPlayerResults(fbb, playersVectorOffset); Offset <GameResultInfoS> gameResultInfoOffset = GameResultInfoS.EndGameResultInfoS(fbb); fbb.Finish(gameResultInfoOffset.Value); byte[] result = fbb.SizedByteArray(); return(result); }
public static Offset <GameResultInfoS> CreateGameResultInfoS(FlatBufferBuilder builder, int playTime = 0, VectorOffset playerResultsOffset = default(VectorOffset)) { builder.StartTable(2); GameResultInfoS.AddPlayerResults(builder, playerResultsOffset); GameResultInfoS.AddPlayTime(builder, playTime); return(GameResultInfoS.EndGameResultInfoS(builder)); }