private static void ResetAllSavedAssets(MenuCommand menuCommand) { var explosionObject = menuCommand.context as VoxelFrameAnimationObjectExplosion; if (explosionObject == null) { return; } var explosionCore = new VoxelFrameAnimationObjectExplosionCore(explosionObject); Undo.RecordObject(explosionObject, "Reset All Assets"); explosionCore.ResetAllAssets(); explosionCore.Generate(); InternalEditorUtility.RepaintAllViews(); }
private static void ResetAllSavedAssets(MenuCommand menuCommand) { var explosionObject = menuCommand.context as VoxelFrameAnimationObjectExplosion; if (explosionObject == null) { return; } var explosionCore = new VoxelFrameAnimationObjectExplosionCore(explosionObject); Undo.RecordObject(explosionObject, "Reset All Assets"); #region Mesh explosionObject.meshes = null; #endregion #region Material if (explosionObject.materials != null) { for (int i = 0; i < explosionObject.materials.Count; i++) { if (explosionObject.materials[i] == null) { continue; } if (!IsMainAsset(explosionObject.materials[i])) { explosionObject.materials[i] = null; } else { explosionObject.materials[i] = Instantiate <Material>(explosionObject.materials[i]); } } } #endregion explosionCore.Generate(); InternalEditorUtility.RepaintAllViews(); }
private static void SaveAllUnsavedAssets(MenuCommand menuCommand) { var explosionObject = menuCommand.context as VoxelFrameAnimationObjectExplosion; if (explosionObject == null) { return; } var explosionCore = new VoxelFrameAnimationObjectExplosionCore(explosionObject); var folder = EditorUtility.OpenFolderPanel("Save all", explosionCore.voxelBaseCore.GetDefaultPath(), null); if (string.IsNullOrEmpty(folder)) { return; } if (folder.IndexOf(Application.dataPath) < 0) { EditorCommon.SaveInsideAssetsFolderDisplayDialog(); return; } Undo.RecordObject(explosionObject, "Save All Unsaved Assets"); #region Mesh if (explosionObject.meshes != null) { for (int i = 0; i < explosionObject.meshes.Count; i++) { if (explosionObject.meshes[i] != null && explosionObject.meshes[i].mesh != null && !EditorCommon.IsMainAsset(explosionObject.meshes[i].mesh)) { var path = folder + "/" + string.Format("{0}_explosion_mesh{1}.asset", explosionObject.gameObject.name, i); path = FileUtil.GetProjectRelativePath(path); path = AssetDatabase.GenerateUniqueAssetPath(path); AssetDatabase.CreateAsset(Mesh.Instantiate(explosionObject.meshes[i].mesh), path); explosionObject.meshes[i].mesh = AssetDatabase.LoadAssetAtPath <Mesh>(path); } } } #endregion #region Material if (explosionObject.materials != null) { for (int index = 0; index < explosionObject.materials.Count; index++) { if (explosionObject.materials[index] == null) { continue; } if (EditorCommon.IsMainAsset(explosionObject.materials[index])) { continue; } var path = folder + "/" + string.Format("{0}_explosion_mat{1}.mat", explosionObject.gameObject.name, index); path = FileUtil.GetProjectRelativePath(path); path = AssetDatabase.GenerateUniqueAssetPath(path); AssetDatabase.CreateAsset(Material.Instantiate(explosionObject.materials[index]), path); explosionObject.materials[index] = AssetDatabase.LoadAssetAtPath <Material>(path); } } #endregion explosionCore.Generate(); InternalEditorUtility.RepaintAllViews(); }