public static CustomEnvironmentInfoSaveData DeserializeFromJSONString(string stringData)
    {
        VersionCheck versionCheck = null;

        try
        {
            versionCheck = JsonConvert.DeserializeObject <VersionCheck>(stringData);
        }
        catch
        { }

        if (versionCheck == null)
        {
            return(null);
        }

        CustomEnvironmentInfoSaveData result = null;

        if (versionCheck.version == "1.0.0")
        {
            try
            {
                return(JsonConvert.DeserializeObject <CustomEnvironmentInfoSaveData>(stringData));
            }
            catch
            {
                return(null);
            }
        }

        return(result);
    }
    public virtual void Init(CustomEnvironmentInfoSaveData saveData)
    {
        _environmentName = saveData.environmentName;

        var colorScheme = CreateInstance <CustomColorSchemeSO>();

        colorScheme.Init(saveData.colorScheme);

        _colorScheme = colorScheme;

        var sceneInfo = CreateInstance <CustomSceneInfo>();

        sceneInfo.Init(saveData.sceneInfo);

        _sceneInfo = sceneInfo;

        _serializedName = saveData.serializedName;

        var environmentType = CreateInstance <CustomEnvironmentTypeSO>();

        environmentType.Init(saveData.environmentType);

        _environmentType     = environmentType;
        _environmentSizeData = new CustomEnvironmentSizeData(saveData.environmentSizeData);
        _environmentIntensityReductionOptions = new CustomEnvironmentIntensityReductionOptions(saveData.environmentIntensityReductionOptions);
        _environmentKeywords = new List <string>(saveData.environmentKeywords);
    }
예제 #3
0
    private static void GetAllEnvironmentInfos()
    {
        if (_environmentInfos == null || forceReload)
        {
            _environmentInfos = new List <EnvironmentInfoSO>();

            var files = Directory.EnumerateFiles("CustomEnvironments");
            foreach (var file in files)
            {
                var environmentInfo = ScriptableObject.CreateInstance <CustomEnvironmentInfoSO>();
                var saveData        = CustomEnvironmentInfoSaveData.DeserializeFromJSONString(File.ReadAllText(file));

                environmentInfo.Init(saveData);

                _environmentInfos.Add(environmentInfo);
            }

            forceReload = false;
        }
    }