using com.gameconfig;
using FlatBuffers;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class Test1 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.LogError(sizeof(int));
Debug.LogError(sizeof(float));
Debug.LogError(sizeof(double));
Save();
Load();
}
void Save()
{
// Create flatbuffer class
FlatBufferBuilder fbb = new FlatBufferBuilder(1);
//------------------------------------------------------
// Create GameDataWhatever object we will store string and weapon in
//------------------------------------------------------
int i = 1;
int offic = 0;
Offset<ActivityPayRewardDaily>[] data = new Offset<ActivityPayRewardDaily>[10];
for (i = 0; i < 10; i++)
{
StringOffset descN = fbb.CreateString("maomaomao");
//Debug.LogError(descN.Value);
StringOffset priceS = fbb.CreateString("100prices");
//Debug.LogError(priceS.Value);
StringOffset priceS1 = fbb.CreateString("100prices");
//Debug.LogError(priceS1.Value);
ActivityPayRewardDaily.StartActivityPayRewardDaily(fbb);
ActivityPayRewardDaily.AddId(fbb, 10 * i);
ActivityPayRewardDaily.AddDesc(fbb, descN);
ActivityPayRewardDaily.AddPrice(fbb, descN);
ActivityPayRewardDaily.AddPriceNow(fbb, priceS1); ;
ActivityPayRewardDaily.AddPurchaseTimes(fbb, 1000 * i);
ActivityPayRewardDaily.AddValueRate(fbb, descN);
ActivityPayRewardDaily.AddName(fbb, descN);
ActivityPayRewardDaily.AddDropId(fbb, 10);
ActivityPayRewardDaily.AddPaymentInfoType(fbb, 10 * i);
ActivityPayRewardDaily.AddUiPrefabId(fbb, 10 * i);
data[i] = ActivityPayRewardDaily.EndActivityPayRewardDaily(fbb);
//ActivityPayRewardDaily_root.FinishActivityPayRewardDailyBuffer(fbb, data[i]);
//Debug.LogError(offset.Value);
// offic = offset.Value;
}
VectorOffset vector = ActivityPayRewardDaily_root.CreateActivityPayRewardDailysVector(fbb, data);
ActivityPayRewardDaily_root.StartActivityPayRewardDaily_root(fbb);
ActivityPayRewardDaily_root.AddActivityPayRewardDailys(fbb, vector);
offic = ActivityPayRewardDaily_root.EndActivityPayRewardDaily_root(fbb).Value;
//ActivityPayRewardDaily_root.StartActivityPayRewardDaily_root(fbb);
//ActivityPayRewardDaily_root.CreateActivityPayRewardDailysVector(fbb, data);
//offic = ActivityPayRewardDaily_root.EndActivityPayRewardDaily_root(fbb).Value;
fbb.Finish(offic);
Debug.LogError(fbb.DataBuffer.Position + "aaa" + fbb.DataBuffer.ToFullArray().Length + ",,," + fbb.Offset);
//File.WriteAllBytes("SAVE_FILENAME.whatever",fbb.DataBuffer.ToFullArray().Length);
//File.WriteAllBytes("SAVE_FILENAME.whatever", fbb.DataBuffer.ToFullArray());
MemoryStream memoryStream = fbb.DataBuffer.ToMemoryStream(fbb.DataBuffer.Position, fbb.Offset);
//using (var ms = new MemoryStream(fbb.DataBuffer.d, fbb.DataBuffer.Position, fbb.Offset))
{
Debug.LogError(memoryStream.ToArray().Length);
File.WriteAllBytes("SAVE_FILENAME.whatever", memoryStream.ToArray());
Debug.LogError(memoryStream.ToArray().Length);
Debug.Log("SAVED !");
}
}
void Load()
{
if (!File.Exists("SAVE_FILENAME.whatever")) throw new Exception("Load failed : 'SAVE_FILENAME.whatever' not exis, something went wrong");
ByteBuffer bb = new ByteBuffer(File.ReadAllBytes("SAVE_FILENAME.whatever"));
Debug.LogError(bb.Length + ",,,," + bb.Position + "ccc" + bb.GetInt(bb.Position));
ActivityPayRewardDaily_root ttt = ActivityPayRewardDaily_root.GetRootAsActivityPayRewardDaily_root(bb);
Debug.LogError("maomao___a" + ttt.ActivityPayRewardDailysLength);
for (int i = 0; i < ttt.ActivityPayRewardDailysLength; i++)
{
ActivityPayRewardDaily activityPayRewardDaily =(ActivityPayRewardDaily) ttt.ActivityPayRewardDailys(i);
Debug.LogError(activityPayRewardDaily.Id);
Debug.LogError(activityPayRewardDaily.Desc);
Debug.LogError(activityPayRewardDaily.UiPrefabId);
}
}
}