| | |
| | | using UnityEngine; |
| | | using UnityEngine.PostProcessing; |
| | | |
| | | namespace UnityEditor.PostProcessing |
| | | { |
| | | using VignetteMode = VignetteModel.Mode; |
| | | using Settings = VignetteModel.Settings; |
| | | |
| | | [PostProcessingModelEditor(typeof(VignetteModel))] |
| | | public class VignetteModelEditor : PostProcessingModelEditor |
| | | { |
| | | SerializedProperty m_Mode; |
| | | SerializedProperty m_Color; |
| | | SerializedProperty m_Center; |
| | | SerializedProperty m_Intensity; |
| | | SerializedProperty m_Smoothness; |
| | | SerializedProperty m_Roundness; |
| | | SerializedProperty m_Mask; |
| | | SerializedProperty m_Opacity; |
| | | SerializedProperty m_Rounded; |
| | | |
| | | public override void OnEnable() |
| | | { |
| | | m_Mode = FindSetting((Settings x) => x.mode); |
| | | m_Color = FindSetting((Settings x) => x.color); |
| | | m_Center = FindSetting((Settings x) => x.center); |
| | | m_Intensity = FindSetting((Settings x) => x.intensity); |
| | | m_Smoothness = FindSetting((Settings x) => x.smoothness); |
| | | m_Roundness = FindSetting((Settings x) => x.roundness); |
| | | m_Mask = FindSetting((Settings x) => x.mask); |
| | | m_Opacity = FindSetting((Settings x) => x.opacity); |
| | | m_Rounded = FindSetting((Settings x) => x.rounded); |
| | | } |
| | | |
| | | public override void OnInspectorGUI() |
| | | { |
| | | EditorGUILayout.PropertyField(m_Mode); |
| | | EditorGUILayout.PropertyField(m_Color); |
| | | |
| | | if (m_Mode.intValue < (int)VignetteMode.Masked) |
| | | { |
| | | EditorGUILayout.PropertyField(m_Center); |
| | | EditorGUILayout.PropertyField(m_Intensity); |
| | | EditorGUILayout.PropertyField(m_Smoothness); |
| | | EditorGUILayout.PropertyField(m_Roundness); |
| | | EditorGUILayout.PropertyField(m_Rounded); |
| | | } |
| | | else |
| | | { |
| | | var mask = (target as VignetteModel).settings.mask; |
| | | |
| | | // Checks import settings on the mask, offers to fix them if invalid |
| | | if (mask != null) |
| | | { |
| | | var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(mask)) as TextureImporter; |
| | | |
| | | if (importer != null) // Fails when using an internal texture |
| | | { |
| | | #if UNITY_5_5_OR_NEWER |
| | | bool valid = importer.anisoLevel == 0 |
| | | && importer.mipmapEnabled == false |
| | | //&& importer.alphaUsage == TextureImporterAlphaUsage.FromGrayScale |
| | | && importer.alphaSource == TextureImporterAlphaSource.FromGrayScale |
| | | && importer.textureCompression == TextureImporterCompression.Uncompressed |
| | | && importer.wrapMode == TextureWrapMode.Clamp; |
| | | #else |
| | | bool valid = importer.anisoLevel == 0 |
| | | && importer.mipmapEnabled == false |
| | | && importer.grayscaleToAlpha == true |
| | | && importer.textureFormat == TextureImporterFormat.Alpha8 |
| | | && importer.wrapMode == TextureWrapMode.Clamp; |
| | | #endif |
| | | |
| | | if (!valid) |
| | | { |
| | | EditorGUILayout.HelpBox("Invalid mask import settings.", MessageType.Warning); |
| | | |
| | | GUILayout.Space(-32); |
| | | using (new EditorGUILayout.HorizontalScope()) |
| | | { |
| | | GUILayout.FlexibleSpace(); |
| | | if (GUILayout.Button("Fix", GUILayout.Width(60))) |
| | | { |
| | | SetMaskImportSettings(importer); |
| | | AssetDatabase.Refresh(); |
| | | } |
| | | GUILayout.Space(8); |
| | | } |
| | | GUILayout.Space(11); |
| | | } |
| | | } |
| | | } |
| | | |
| | | EditorGUILayout.PropertyField(m_Mask); |
| | | EditorGUILayout.PropertyField(m_Opacity); |
| | | } |
| | | } |
| | | |
| | | void SetMaskImportSettings(TextureImporter importer) |
| | | { |
| | | #if UNITY_5_5_OR_NEWER |
| | | importer.textureType = TextureImporterType.SingleChannel; |
| | | //importer.alphaUsage = TextureImporterAlphaUsage.FromGrayScale; |
| | | importer.alphaSource = TextureImporterAlphaSource.FromGrayScale; |
| | | importer.textureCompression = TextureImporterCompression.Uncompressed; |
| | | #else |
| | | importer.textureType = TextureImporterType.Advanced; |
| | | importer.grayscaleToAlpha = true; |
| | | importer.textureFormat = TextureImporterFormat.Alpha8; |
| | | #endif |
| | | |
| | | importer.anisoLevel = 0; |
| | | importer.mipmapEnabled = false; |
| | | importer.wrapMode = TextureWrapMode.Clamp; |
| | | importer.SaveAndReimport(); |
| | | } |
| | | } |
| | | } |
| | | using UnityEngine;
|
| | | using UnityEngine.PostProcessing;
|
| | |
|
| | | namespace UnityEditor.PostProcessing
|
| | | {
|
| | | using VignetteMode = VignetteModel.Mode;
|
| | | using Settings = VignetteModel.Settings;
|
| | |
|
| | | [PostProcessingModelEditor(typeof(VignetteModel))]
|
| | | public class VignetteModelEditor : PostProcessingModelEditor
|
| | | {
|
| | | SerializedProperty m_Mode;
|
| | | SerializedProperty m_Color;
|
| | | SerializedProperty m_Center;
|
| | | SerializedProperty m_Intensity;
|
| | | SerializedProperty m_Smoothness;
|
| | | SerializedProperty m_Roundness;
|
| | | SerializedProperty m_Mask;
|
| | | SerializedProperty m_Opacity;
|
| | | SerializedProperty m_Rounded;
|
| | |
|
| | | public override void OnEnable()
|
| | | {
|
| | | m_Mode = FindSetting((Settings x) => x.mode);
|
| | | m_Color = FindSetting((Settings x) => x.color);
|
| | | m_Center = FindSetting((Settings x) => x.center);
|
| | | m_Intensity = FindSetting((Settings x) => x.intensity);
|
| | | m_Smoothness = FindSetting((Settings x) => x.smoothness);
|
| | | m_Roundness = FindSetting((Settings x) => x.roundness);
|
| | | m_Mask = FindSetting((Settings x) => x.mask);
|
| | | m_Opacity = FindSetting((Settings x) => x.opacity);
|
| | | m_Rounded = FindSetting((Settings x) => x.rounded);
|
| | | }
|
| | |
|
| | | public override void OnInspectorGUI()
|
| | | {
|
| | | EditorGUILayout.PropertyField(m_Mode);
|
| | | EditorGUILayout.PropertyField(m_Color);
|
| | |
|
| | | if (m_Mode.intValue < (int)VignetteMode.Masked)
|
| | | {
|
| | | EditorGUILayout.PropertyField(m_Center);
|
| | | EditorGUILayout.PropertyField(m_Intensity);
|
| | | EditorGUILayout.PropertyField(m_Smoothness);
|
| | | EditorGUILayout.PropertyField(m_Roundness);
|
| | | EditorGUILayout.PropertyField(m_Rounded);
|
| | | }
|
| | | else
|
| | | {
|
| | | var mask = (target as VignetteModel).settings.mask;
|
| | |
|
| | | // Checks import settings on the mask, offers to fix them if invalid
|
| | | if (mask != null)
|
| | | {
|
| | | var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(mask)) as TextureImporter;
|
| | |
|
| | | if (importer != null) // Fails when using an internal texture
|
| | | {
|
| | | #if UNITY_5_5_OR_NEWER
|
| | | bool valid = importer.anisoLevel == 0
|
| | | && importer.mipmapEnabled == false
|
| | | //&& importer.alphaUsage == TextureImporterAlphaUsage.FromGrayScale
|
| | | && importer.alphaSource == TextureImporterAlphaSource.FromGrayScale
|
| | | && importer.textureCompression == TextureImporterCompression.Uncompressed
|
| | | && importer.wrapMode == TextureWrapMode.Clamp;
|
| | | #else
|
| | | bool valid = importer.anisoLevel == 0
|
| | | && importer.mipmapEnabled == false
|
| | | && importer.grayscaleToAlpha == true
|
| | | && importer.textureFormat == TextureImporterFormat.Alpha8
|
| | | && importer.wrapMode == TextureWrapMode.Clamp;
|
| | | #endif
|
| | |
|
| | | if (!valid)
|
| | | {
|
| | | EditorGUILayout.HelpBox("Invalid mask import settings.", MessageType.Warning);
|
| | |
|
| | | GUILayout.Space(-32);
|
| | | using (new EditorGUILayout.HorizontalScope())
|
| | | {
|
| | | GUILayout.FlexibleSpace();
|
| | | if (GUILayout.Button("Fix", GUILayout.Width(60)))
|
| | | {
|
| | | SetMaskImportSettings(importer);
|
| | | AssetDatabase.Refresh();
|
| | | }
|
| | | GUILayout.Space(8);
|
| | | }
|
| | | GUILayout.Space(11);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | EditorGUILayout.PropertyField(m_Mask);
|
| | | EditorGUILayout.PropertyField(m_Opacity);
|
| | | }
|
| | | }
|
| | |
|
| | | void SetMaskImportSettings(TextureImporter importer)
|
| | | {
|
| | | #if UNITY_5_5_OR_NEWER
|
| | | importer.textureType = TextureImporterType.SingleChannel;
|
| | | //importer.alphaUsage = TextureImporterAlphaUsage.FromGrayScale;
|
| | | importer.alphaSource = TextureImporterAlphaSource.FromGrayScale;
|
| | | importer.textureCompression = TextureImporterCompression.Uncompressed;
|
| | | #else
|
| | | importer.textureType = TextureImporterType.Advanced;
|
| | | importer.grayscaleToAlpha = true;
|
| | | importer.textureFormat = TextureImporterFormat.Alpha8;
|
| | | #endif
|
| | |
|
| | | importer.anisoLevel = 0;
|
| | | importer.mipmapEnabled = false;
|
| | | importer.wrapMode = TextureWrapMode.Clamp;
|
| | | importer.SaveAndReimport();
|
| | | }
|
| | | }
|
| | | }
|