赞
踩
在进行屏幕后处理之前,需要检查一系列条件是否满足,比如是否支持渲染纹理和屏幕特效,是否支持当前使用的Unity shader等.所以需要创建一个基类,用来检查:
using UnityEngine; [ExecuteInEditMode]//ExecuteInEditMode属性的作用是在EditMode下也可以执行脚本 [RequireComponent (typeof(Camera))]//所有屏幕后处理效果都需要绑定在某个摄像机上 public class PostEffectsBase : MonoBehaviour { protected void CheckResources() { bool isSupported = CheckSupport(); if (isSupported == false) { NotSupported(); } } protected bool CheckSupport()//检查各种资源和条件是否满足 { if (SystemInfo.supportsImageEffects == false ) { Debug.LogWarning("This platform does not support image effects or render textures."); return false; } return true; } protected void NotSupported()//不支持就禁用 { enabled = false; } protected void Start() { CheckResources(); } protected Material CheckShaderAndCreateMaterial(Shader shader, Material material) { if (shader == null) { return null; } if (shader.isSupported && material && material.shader == shader) return material; if (!shader.isSupported) { return null; } else
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。