You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
905 B
C#
41 lines
905 B
C#
2 months ago
|
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 shader;
|
||
|
private Material m_Material;
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
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 );
|
||
|
}
|
||
|
}
|
||
|
}
|