成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

UnityShader實(shí)現(xiàn)百葉窗效果

本文實(shí)例為大家分享了UnityShader百葉窗展示的具體代碼,供大家參考,具體內(nèi)容如下

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)雨山,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

UnityShader實(shí)現(xiàn)百葉窗效果

shader實(shí)現(xiàn)以上百葉窗效果,主要通過shader實(shí)現(xiàn)C#只是做開關(guān)控制

看到一篇文章弄的比較復(fù)雜,覺得可以都通過shader來實(shí)現(xiàn),就動手了。

shader定義了2張texture,自己隨便找2張圖片拖進(jìn)去就行。

Shader "Unlit/NewUnlitShader"
{
 Properties
 {
 _MainTex ("Texture", 2D) = "white" {}
 _MainTex2 ("Texture2", 2D) = "white" {}
 _StartFlag("開始標(biāo)記", float) = 0
 _SpeedFactor("速度",Range(0.01,10)) = 0.1
 _StartTime("時(shí)間初始標(biāo)記,不要手動設(shè)置",float) = 1
 _Column("百葉窗的列數(shù)",float ) = 5
 }
 SubShader
 {
 Tags { "RenderType"="Opaque" }
 LOD 100
 
 Pass
 {
 CGPROGRAM
 #pragma vertex vert
 #pragma fragment frag
 // make fog work
 #pragma multi_compile_fog
 
 #include "UnityCG.cginc"
 
 struct appdata
 {
 float4 vertex : POSITION;
 float2 uv : TEXCOORD0;
 };
 
 struct v2f
 {
 float2 uv : TEXCOORD0;
 float4 vertex : SV_POSITION;
 };
 
 sampler2D _MainTex;
 float4 _MainTex_ST;
 
 sampler2D _MainTex2;
 float4 _MainTex2_ST;
 
 float _StartFlag;
 float _Column;
 float _SpeedFactor;
 float _StartTime;
 
 v2f vert (appdata v)
 {
 v2f o;
 o.vertex = UnityObjectToClipPos(v.vertex);
 o.uv = TRANSFORM_TEX(v.uv, _MainTex);
 return o;
 }
 
 fixed4 frag (v2f i) : SV_Target
 {
 fixed4 col = 0;
 //_StartFlag 通過C#監(jiān)聽鍵盤事件,設(shè)置為1,作為開始動畫的標(biāo)記
 //step(a,b) => if(b>=a) return 1 else return 0
 //i.uv.x % (1/_Column) i.uv.x范圍是0-1,分成_Column份 每份(1/_Column)
 fixed result = _StartFlag * step( i.uv.x % (1/_Column) ,(_Time.y - _StartTime) * _SpeedFactor );
 
 if( result == 0 )
 {
 col = tex2D(_MainTex, i.uv);
 }
 else
 {
 col = tex2D(_MainTex2, i.uv);
 }
 
 return col;
 }
 ENDCG
 }
 }
}

C#控制開關(guān),點(diǎn)擊鍵盤任意按鍵。掛到panel上

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class baiyechuang : MonoBehaviour {
 
 // Use this for initialization
 Material mat;
 MeshRenderer meshRen;
 void Start () {
 meshRen = this.GetComponent<MeshRenderer> ();
 print (meshRen);
 mat = meshRen.material;
 print (mat);
 }
 
 void OnGUI() {
 if (Input.anyKeyDown)
 {
  Event e = Event.current;
  if (e.isMouse) {
  Debug.Log(e.button);
  }
  if (e.isKey)
  {
  if (e.keyCode == KeyCode.None)
   return;
  Debug.Log(e.keyCode);
 mat.SetFloat ("_StartTime", Time.timeSinceLevelLoad);
 mat.SetFloat ("_StartFlag", 1);
  }
 }
 }
 
 
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

當(dāng)前題目:UnityShader實(shí)現(xiàn)百葉窗效果
分享地址:http://jinyejixie.com/article20/jposco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)外貿(mào)建站、App開發(fā)、網(wǎng)站內(nèi)鏈網(wǎng)站設(shè)計(jì)、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
常德市| 贵阳市| 武山县| 阳山县| 含山县| 南宫市| 罗平县| 台东县| 高邮市| 济阳县| 信阳市| 兴国县| 安西县| 白朗县| 济阳县| 施甸县| 岳阳县| 建平县| 正蓝旗| 长治县| 隆林| 商水县| 晋城| 滁州市| 凯里市| 沛县| 宁强县| 邻水| 兰坪| 南开区| 抚顺县| 咸宁市| 涿鹿县| 大同县| 长宁区| 汾阳市| 绩溪县| 香河县| 昌吉市| 横峰县| 扬州市|