111
This commit is contained in:
118
Assets/ThirdParty/PostProcessing/Editor/Models/VignetteModelEditor.cs
vendored
Normal file
118
Assets/ThirdParty/PostProcessing/Editor/Models/VignetteModelEditor.cs
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user