private void OnSave() { ProjectManifest manifest = new ProjectManifest(); manifest.Read(); bool refreshAssetDatabase = false; EditorSettings.defaultBehaviorMode = (EditorBehaviorMode)_behaviorMode.value; PlayerSettings.productName = _productName.value; PlayerSettings.bundleVersion = _productVersion.value; refreshAssetDatabase |= manifest.UseSpine != _useSpine.value; manifest.UseSpine = _useSpine.value; refreshAssetDatabase |= manifest.UseDOTween != _useDOTween.value; manifest.UseDOTween = _useDOTween.value; refreshAssetDatabase |= manifest.UseNetworking != _useNetworking.value; manifest.UseNetworking = _useNetworking.value; SetScriptingDefineSymbols(BuildTargetGroup.Standalone); SetScriptingDefineSymbols(BuildTargetGroup.Android); SetScriptingDefineSymbols(BuildTargetGroup.iOS); SetScriptingDefineSymbols(BuildTargetGroup.WebGL); manifest.Write(); if (refreshAssetDatabase) { AssetDatabase.Refresh(); } }
protected override void OnEnable() { base.OnEnable(); rootVisualElement.styleSheets.Add(Resources.Load <StyleSheet>(MainStyleSheet)); VisualTreeAsset mainVisualTree = Resources.Load <VisualTreeAsset>(WindowLayout); mainVisualTree.CloneTree(rootVisualElement); ProjectManifest manifest = new ProjectManifest(); manifest.Read(); _behaviorMode = rootVisualElement.Q <EnumField>("enum-behavior-mode"); _behaviorMode.Init(EditorBehaviorMode.Mode3D); _behaviorMode.value = EditorSettings.defaultBehaviorMode; _productName = rootVisualElement.Q <TextField>("text-product-name"); _productName.value = PlayerSettings.productName; _productVersion = rootVisualElement.Q <TextField>("text-product-version"); _productVersion.value = PlayerSettings.bundleVersion; _useSpine = rootVisualElement.Q <Toggle>("toggle-feature-spine"); _useSpine.value = manifest.UseSpine; _useDOTween = rootVisualElement.Q <Toggle>("toggle-feature-dotween"); _useDOTween.value = manifest.UseDOTween; _useNetworking = rootVisualElement.Q <Toggle>("toggle-feature-networking"); _useNetworking.value = manifest.UseNetworking; }
private static void InitializeProject() { EditorApplication.delayCall -= InitializeProject; ProjectManifest manifest = new ProjectManifest(); // TODO: use a try / catch here instead of pre-checking for the file if (File.Exists(ProjectManifest.FileName)) { manifest.Read(); } else { // for whatever reason if we initialize on the first load of a fresh project, // something will come along and overwrite it all back to defaults // so create a v0 manifest that will get picked up on the second load manifest.Version = 0; manifest.Write(); return; } if (UpdateFromVersion(manifest.Version)) { manifest.Version = Version; manifest.Write(); } }
private static void InitializeProject() { ProjectManifest manifest = new ProjectManifest(); if (File.Exists(ProjectManifest.FileName)) { manifest.Read(); } else { // for whatever reason if we initialize on the first load of a fresh project, // something will come along and overwrite it all back to defaults // so create a v0 manifest that will get picked up on the second load manifest.Version = 0; manifest.Write(); return; } if (UpdateFromVersion(manifest.Version)) { manifest.Version = Version; manifest.Write(); } }