62 lines
1.3 KiB
C#
62 lines
1.3 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
[ExecuteInEditMode]
|
|
[RequireComponent (typeof(Camera))]
|
|
public class PostEffectsBase : MonoBehaviour {
|
|
|
|
// Called when start
|
|
protected void CheckResources() {
|
|
bool isSupported = CheckSupport();
|
|
|
|
if (isSupported == false) {
|
|
NotSupported();
|
|
}
|
|
}
|
|
|
|
// Called in CheckResources to check support on this platform
|
|
protected bool CheckSupport() {
|
|
if (SystemInfo.supportsImageEffects == false) {
|
|
Debug.LogWarning("This platform does not support image effects or render textures.");
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
// Called when the platform doesn't support this effect
|
|
protected void NotSupported() {
|
|
enabled = false;
|
|
}
|
|
|
|
protected void Start() {
|
|
CheckResources();
|
|
}
|
|
|
|
// Called when need to create the material used by this effect
|
|
protected Material CheckShaderAndCreateMaterial(Shader shader, Material material) {
|
|
if (shader == null) {
|
|
// Debug.Log("shader is null");
|
|
return null;
|
|
}
|
|
|
|
if (shader.isSupported && material && material.shader == shader)
|
|
{
|
|
return material;
|
|
}
|
|
|
|
if (!shader.isSupported) {
|
|
Debug.Log("isSupported is false");
|
|
return null;
|
|
}
|
|
else {
|
|
material = new Material(shader);
|
|
material.hideFlags = HideFlags.DontSave;
|
|
if (material)
|
|
return material;
|
|
else
|
|
return null;
|
|
}
|
|
}
|
|
}
|