| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using UnityEngine;
- using UnityEngine.Rendering.PostProcessing;
- namespace UnityEditor.Rendering.PostProcessing
- {
- [PostProcessEditor(typeof(Vignette))]
- internal sealed class VignetteEditor : PostProcessEffectEditor<Vignette>
- {
- SerializedParameterOverride m_Mode;
- SerializedParameterOverride m_Color;
- SerializedParameterOverride m_Center;
- SerializedParameterOverride m_Intensity;
- SerializedParameterOverride m_Smoothness;
- SerializedParameterOverride m_Roundness;
- SerializedParameterOverride m_Rounded;
- SerializedParameterOverride m_Mask;
- SerializedParameterOverride m_Opacity;
- public override void OnEnable()
- {
- m_Mode = FindParameterOverride(x => x.mode);
- m_Color = FindParameterOverride(x => x.color);
- m_Center = FindParameterOverride(x => x.center);
- m_Intensity = FindParameterOverride(x => x.intensity);
- m_Smoothness = FindParameterOverride(x => x.smoothness);
- m_Roundness = FindParameterOverride(x => x.roundness);
- m_Rounded = FindParameterOverride(x => x.rounded);
- m_Mask = FindParameterOverride(x => x.mask);
- m_Opacity = FindParameterOverride(x => x.opacity);
- }
- public override void OnInspectorGUI()
- {
- PropertyField(m_Mode);
- PropertyField(m_Color);
- if (m_Mode.value.intValue == (int)VignetteMode.Classic)
- {
- PropertyField(m_Center);
- PropertyField(m_Intensity);
- PropertyField(m_Smoothness);
- PropertyField(m_Roundness);
- PropertyField(m_Rounded);
- }
- else
- {
- PropertyField(m_Mask);
- var mask = (target as Vignette).mask.value;
- // Checks import settings on the mask
- if (mask != null)
- {
- var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(mask)) as TextureImporter;
- // Fails when using an internal texture as you can't change import settings on
- // builtin resources, thus the check for null
- if (importer != null)
- {
- bool valid = importer.anisoLevel == 0
- && importer.mipmapEnabled == false
- && importer.alphaSource == TextureImporterAlphaSource.FromGrayScale
- && importer.textureCompression == TextureImporterCompression.Uncompressed
- && importer.wrapMode == TextureWrapMode.Clamp;
- if (!valid)
- EditorUtilities.DrawFixMeBox("Invalid mask import settings.", () => SetMaskImportSettings(importer));
- }
- }
- PropertyField(m_Opacity);
- }
- }
- void SetMaskImportSettings(TextureImporter importer)
- {
- importer.textureType = TextureImporterType.SingleChannel;
- importer.alphaSource = TextureImporterAlphaSource.FromGrayScale;
- importer.textureCompression = TextureImporterCompression.Uncompressed;
- importer.anisoLevel = 0;
- importer.mipmapEnabled = false;
- importer.wrapMode = TextureWrapMode.Clamp;
- importer.SaveAndReimport();
- AssetDatabase.Refresh();
- }
- }
- }
|