public void SaveSceneData() { if (_SceneObj == null) { _SceneObj = GameObject.Find("场景配置对象"); } if (_SceneObj != null) { SceneData sceneData = new SceneData(); sceneData.SceneName = SceneManager.GetActiveScene().name; sceneData.EnemyArr = new CharacterData[_NPCListOBJ.transform.childCount]; for (int idx = 0; idx < _NPCListOBJ.transform.childCount; ++idx) { Transform actorTrans = _NPCListOBJ.transform.GetChild(idx); BaseActorObj actor = actorTrans.GetComponent <BaseActorObj>(); sceneData.EnemyArr[idx].WriteActor(actor); } sceneData.DoorArr = new DoorData[_TranslateDoor.transform.childCount]; for (int idx = 0; idx < _TranslateDoor.transform.childCount; ++idx) { Transform doorTrans = _TranslateDoor.transform.GetChild(idx); SceneDoor door = doorTrans.GetComponent <SceneDoor>(); sceneData.DoorArr[idx].WriteData(door); } _SceneData[sceneData.SceneName] = sceneData; SlzDictionary <string, SceneData> slzDictionary = new SlzDictionary <string, SceneData>(_SceneData); string saveInfo = JsonMapper.ToJson(slzDictionary); byte[] bytes = Encoding.UTF8.GetBytes(saveInfo); File.WriteAllBytes(PathManager.SceneData, bytes); GameObject.DestroyImmediate(_SceneObj); } }
private void _Load() { byte[] bytes = LoaderFile.LoadBytes(PathManager.SceneData, Application.platform == RuntimePlatform.Android); string jsStr = Encoding.UTF8.GetString(bytes); SlzDictionary <string, SceneData> slzDictionary = JsonUtility.FromJson <SlzDictionary <string, SceneData> >(jsStr);//JsonMapper.ToObject<SlzDictionary<string, SceneData>>(jsStr);// _SceneData = slzDictionary.ToDictionary(); }