using UnityEngine; using UnityEngine.PostProcessing; using UnityEditor.ProjectWindowCallback; using System.IO; namespace UnityEditor.PostProcessing { public class PostProcessingFactory { [MenuItem("Assets/Create/Post-Processing Profile", priority = 201)] static void MenuCreatePostProcessingProfile() { var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon"); ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance(), "New Post-Processing Profile.asset", icon, null); } internal static PostProcessingProfile CreatePostProcessingProfileAtPath(string path) { var profile = ScriptableObject.CreateInstance(); profile.name = Path.GetFileName(path); profile.fog.enabled = true; AssetDatabase.CreateAsset(profile, path); return profile; } } class DoCreatePostProcessingProfile : EndNameEditAction { public override void Action(int instanceId, string pathName, string resourceFile) { PostProcessingProfile profile = PostProcessingFactory.CreatePostProcessingProfileAtPath(pathName); ProjectWindowUtil.ShowCreatedAsset(profile); } } }