資源簡介
將腳本掛在攝像機(jī),將圖片經(jīng)Shader處理后生成Material并渲染到屏幕

代碼片段和文件信息
using?UnityEngine;
using?System.Collections;
using?System;
//[ExecuteInEditMode]
//[AddComponentMenu?(“PengLu/ImageEffect/BrokenScreen“)]
public?class?ImageEffect_BrokenScreen?:?MonoBehaviour?{
#region?Variables
public?Shader?BrokenScreenShader?=?null;
private?Material?BrokenScreenMaterial?=?null;
public?Texture2D?BumpMap;
????private?RenderTextureFormat?rtFormat?=?RenderTextureFormat.Default;
[Range(0.0f?1.0f)]
public?float?satCount?=?0.17f;
#endregion
void?OnEnable?()?{
FindShaders?();
CheckSupport?();
CreateMaterials?();
}
void?FindShaders?()?{
if?(!BrokenScreenShader)?{
BrokenScreenShader?=?Shader.Find(“PengLu/ImageEffect/Unlit/BrokenScreen“);
}
}
void?CreateMaterials()?{
if(!BrokenScreenMaterial){
BrokenScreenMaterial?=?new?Material(BrokenScreenShader);
BrokenScreenMaterial.hideFlags?=?HideFlags.HideAndDontSave;
}
}
bool?Supported(){
return?(SystemInfo.supportsImageEffects?&&?BrokenScreenShader.isSupported);
}
bool?CheckSupport()?{
if(!Supported())?{
enabled?=?false;
return?false;
}
return?true;
}
void?OnRenderImage?(RenderTexture?sourceTexture?RenderTexture?destTexture)
{
#if?UNITY_EDITOR
FindShaders?();
CheckSupport?();
CreateMaterials?();
#endif
float?scaleX??scaleY?;
if(sourceTexture.width?>?sourceTexture.height)
{
scaleX?=?1.0f;
scaleY?=?(float)?sourceTexture.height?/?(float)?sourceTexture.width;
}
else
{
scaleX?=?(float)?sourceTexture.width?/?(float)?sourceTexture.height;
scaleY?=?1.0f;
}
print(“scaleX:-------“?+?scaleX?+?“? “?+?“scaleY:-------“?+?scaleY);
if(BumpMap?!=?null){
????????BrokenScreenMaterial.SetFloat?(“_satCount“?satCount);
????????BrokenScreenMaterial.SetFloat?(“_scaleX“?scaleX);
????????BrokenScreenMaterial.SetFloat?(“_scaleY“?scaleY);
? BrokenScreenMaterial.SetTexture?(“_BumpTex“?BumpMap);
??? Graphics.Blit?(sourceTexture?destTexture?BrokenScreenMaterial0);
}
else?{
Graphics.Blit?(sourceTexture?destTexture);
}
}
?public?void?OnDisable?()?{
????????if?(BrokenScreenMaterial)
????????????DestroyImmediate?(BrokenScreenMaterial);
?????????????BrokenScreenMaterial?=?null;
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2219??2018-03-06?16:38??suiping\ImageEffect_BrokenScreen.cs
????..A..H.???????262??2018-03-06?16:38??suiping\ImageEffect_BrokenScreen.cs.me
?????文件???????1267??2018-03-06?16:38??suiping\ImageEffect_BrokenScreen.shader
????..A..H.???????195??2018-03-06?16:38??suiping\ImageEffect_BrokenScreen.shader.me
?????文件??????47074??2018-03-06?16:38??suiping\sui.png
????..A..H.??????2070??2018-03-06?16:38??suiping\sui.png.me
?????目錄??????????0??2018-03-17?17:20??suiping
-----------?---------??----------?-----??----
????????????????53087????????????????????7
評論
共有 條評論