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;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |