//<summary>セーブデータからワールドを作成</summary> static public MapWorld createFromSave(string aFilePath, MyMap aMap) { MapSaveFileData tSaveData = new MapSaveFileData(aFilePath); //マップデータを記憶 mData = tSaveData; mWorld = initWorld(new Vector3Int(mData.mStratums[0].mFeild[0].Count, mData.mStratums.Count, mData.mStratums[0].mFeild.Count)); mWorld.mMap = aMap; mWorld.mMapName = mData.mMapName; mWorld.mFileData = mData; mWorld.mSaveData = tSaveData; //マップファイルへのパス mWorld.mMapPath = tSaveData.mFilePath; //生成 createFromFileData(); //生成完了 foreach (MapBehaviour tBehaviour in mWorld.GetComponentsInChildren <MapBehaviour>()) { tBehaviour.placed(); } MapWorld tCreatedWorld = mWorld; mWorld = null; mData = null; return(tCreatedWorld); }
void Update() { //入力 mController.mInputVector = mPad.mTailVec * 0.001f; mController.mInputA = mPad.mIsTapped; //セーブ if (Input.GetKeyDown(KeyCode.S)) { MapSaveFileData tSave = mMap.save(); MyJson.serializeToFile(tSave.createDic().dictionary, "Assets/resources/save/mapSaveData.json", true); mMap.mFlag.write("Assets/resources/save/flagSaveData.json", true); } }
///<summary>セーブデータ読み込み</summary> public void loadSaveData(string aFilePath) { //セーブデータ読み込み MapSaveFileData tSaveData = new MapSaveFileData(aFilePath); mEncountSystem = new MapEncoutSystem(); mEncountSystem.setCount(tSaveData.mEncountCount); //ワールドを再生成 if (mWorld != null) { mWorld.delete(); } mWorld = MapWorldFactory.createFromSave(aFilePath, this); mWorld.mMap = this; mWorld.name = "world"; mWorld.transform.SetParent(this.transform, false); }
/// <summary>マップの状態を保存</summary> static public MapSaveFileData save(MyMap aMap) { MapSaveFileData tSaveData = new MapSaveFileData(); //マップ名 tSaveData.mMapName = aMap.mWorld.mFileData.mMapName; //field margin tSaveData.mFieldMargin = aMap.mWorld.mFileData.mFieldMargin; //cameraSize tSaveData.mCameraSize = aMap.mWorld.mCameras[0].mCameraSize; //フレームワーク外部用変数 tSaveData.mArg = aMap.mWorld.mFileData.mArg; //ファイルパス tSaveData.mFilePath = aMap.mWorld.mMapPath; //エンカウント tSaveData.mEncountCount = aMap.mEncountSystem.mCount; //stratum tSaveData.mStratums = aMap.mWorld.mFileData.mStratums; //chip tSaveData.mChip = aMap.mWorld.mFileData.mChip; //shadow tSaveData.mShadows = aMap.mWorld.mFileData.mShadows; //trigger tSaveData.mTriggers = aMap.mWorld.mFileData.mTriggers; //event tSaveData.mEvents = aMap.mWorld.mFileData.mEvents; //entrance tSaveData.mEntrances = aMap.mWorld.mFileData.mEntrances; //ornament foreach (MapOrnament tOrnament in aMap.mWorld.mOrnamentContainer.GetComponentsInChildren <MapOrnament>()) { tSaveData.mOrnaments.Add(saveOrnament(tOrnament)); } //character(player含む) foreach (MapCharacter tCharacter in aMap.mWorld.mCharacterContainer.GetComponentsInChildren <MapCharacter>()) { tSaveData.mCharacters.Add(saveCharacter(tCharacter)); } return(tSaveData); }