Beispiel #1
0
 public static void Load(int id)
 {
     WebUtil.DetailSence(id, scene =>
     {
         PanelLoading.current.SceneLoading();
         string json = System.Text.Encoding.UTF8.GetString(scene.Content);
         Debug.Log(json);
         SenceSaveData saveData = Json.Parse <SenceSaveData>(json);
         //--floor
         Floor.current.Load(saveData.FloorSaveData.X, saveData.FloorSaveData.Z);
         //--building
         PanelList.current.Reset();
         Coordinate.Target.SetTarget(null);
         foreach (BuildingSaveData data in saveData.BuildingRoomSaveData.BuildingSaveDatas)
         {
             PanelList.current.Add(BuildingUtil.Create(data));
         }
         //--camera
         MyCamera.current.MoveAnim((TransformGroup)saveData.CameraTransformGroup);
         PanelLoading.current.Close();
     }, err =>
     {
         PanelLoading.current.Error(err);
     });
 }
Beispiel #2
0
    public static void Save(string name, UnityAction action)
    {
        SenceSaveData saveData = new SenceSaveData()
        {
            CameraTransformGroup = (TransformGroupSaveData)MyCamera.current.transformGroup,
            BuildingRoomSaveData = new BuildingRoomSaveData(),
            FloorSaveData        = new FloorSaveData()
        };

        //--floor
        saveData.FloorSaveData.X = Floor.current.x;
        saveData.FloorSaveData.Z = Floor.current.z;
        //--building
        List <BuildingSaveData> buildingSaveDatas = new List <BuildingSaveData>();

        foreach (PanelList.Item item in PanelList.current.items)
        {
            buildingSaveDatas.Add(new BuildingSaveData(item.building));
        }
        saveData.BuildingRoomSaveData.BuildingSaveDatas = buildingSaveDatas;
        //--toJson
        string json = Json.Serialize(saveData);

        Debug.Log(json);
        //--to bytes
        byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);

        Scene scene = new Scene()
        {
            Name       = name,
            Content    = bytes,
            DeployTime = TimeUtil.UnixTimeSpan
        };

        Debug.Log(scene);
        //--save to sql
        WebUtil.Save(scene, rs =>
        {
            PanelLoading.current.Success(rs);
            PanelLoad.current.Fresh();
            action();
        }, err =>
        {
            PanelLoading.current.Error(err);
        });
    }