示例#1
0
    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);
        }
    }
示例#2
0
    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();
    }