From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XEditor/XSkillEditor/Effect/ImageEffectBase.cs | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Client/Assets/Scripts/XEditor/XSkillEditor/Effect/ImageEffectBase.cs (limited to 'Client/Assets/Scripts/XEditor/XSkillEditor/Effect/ImageEffectBase.cs') diff --git a/Client/Assets/Scripts/XEditor/XSkillEditor/Effect/ImageEffectBase.cs b/Client/Assets/Scripts/XEditor/XSkillEditor/Effect/ImageEffectBase.cs new file mode 100644 index 00000000..bf9e66e2 --- /dev/null +++ b/Client/Assets/Scripts/XEditor/XSkillEditor/Effect/ImageEffectBase.cs @@ -0,0 +1,56 @@ +#if UNITY_EDITOR +using UnityEngine; + +[RequireComponent (typeof(Camera))] +[AddComponentMenu("")] +public class ImageEffectBase : MonoBehaviour { + /// Provides a shader property that is set in the inspector + /// and a material instantiated from the shader + public Shader m_shader; + private Material m_Material; + protected string m_shaderName = "Mobile/Diffuse"; + protected virtual void Start () + { + // Disable if we don't support image effects + if (!SystemInfo.supportsImageEffects) { + enabled = false; + return; + } + + // Disable the image effect if the shader can't + // run on the users graphics card + if (!shader || !shader.isSupported) + enabled = false; + } + public virtual Shader shader + { + get + { + if (m_shader == null) + { + m_shader = Shader.Find(m_shaderName); + } + return m_shader; + } + set + { + m_shader = value; + } + } + protected Material material { + get { + if (m_Material == null) { + m_Material = new Material (shader); + m_Material.hideFlags = HideFlags.HideAndDontSave; + } + return m_Material; + } + } + + protected virtual void OnDisable() { + if( m_Material ) { + DestroyImmediate( m_Material ); + } + } +} +#endif \ No newline at end of file -- cgit v1.1-26-g67d0