| 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<DoCreatePostProcessingProfile>(), "New Post-Processing Profile.asset", icon, null); | 
|         } | 
|   | 
|         internal static PostProcessingProfile CreatePostProcessingProfileAtPath(string path) | 
|         { | 
|             var profile = ScriptableObject.CreateInstance<PostProcessingProfile>(); | 
|             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); | 
|         } | 
|     } | 
| } |