You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
55 lines
1.3 KiB
using System; |
|
using UnityEngine; |
|
|
|
namespace UnityStandardAssets.ImageEffects |
|
{ |
|
[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); |
|
} |
|
} |
|
} |
|
}
|
|
|