Unity 动态切换天空盒\反射天空盒材质
如果只是單純的想動(dòng)態(tài)更換天空盒:推薦查看這個(gè)文章關(guān)于Unity中如何代碼動(dòng)態(tài)修改天空盒 - 流星與蝴蝶 - 博客園
?
?
?
????????4.通過上一步發(fā)現(xiàn)Cubmap的name叫_Tex,寫腳本,sky_tex[]是天空盒圖片的數(shù)組
通過腳本可以實(shí)現(xiàn)動(dòng)態(tài)的天空盒切換.這種方法對(duì)于模型材質(zhì)中反射天空盒的效果是沒有的(有效果的在下面),他的反射只會(huì)停留在第一個(gè)天空盒,即使你再怎么變換天空盒它還是不會(huì)改變.
假設(shè)我們第一次的天空盒是這個(gè)樣子,鏡片反射也是這個(gè)樣子
當(dāng)我們通過腳本實(shí)現(xiàn)動(dòng)態(tài)求換天空盒之后會(huì)發(fā)現(xiàn)只有背景變了,鏡片的反射效果還是會(huì)停留在第一個(gè)天空盒.
?
一般修改天空盒的方法
在這里修改之后要點(diǎn)擊下面的生成照明,我搜索了一下好像沒有找到動(dòng)態(tài)點(diǎn)擊這個(gè)按鈕的方法.(望大佬指點(diǎn))
隨著天空盒的變換對(duì)應(yīng)模型的反射也發(fā)生變化 方法1
新建一個(gè)反射探測(cè)器,然后將模型放在這個(gè)發(fā)射探測(cè)器里面,也會(huì)實(shí)現(xiàn)反射效果.
調(diào)整參數(shù),
?這樣就設(shè)置完之后再結(jié)合上面的腳本就可以實(shí)時(shí)更改鏡片的反射效果了(這種方法可能會(huì)比較耗時(shí),再來推薦一種比較好的方法).
方法2
?這樣我們只需要修改里面的立方體貼圖,新建腳本加入以下代碼
//天空盒文件夾的名字 private string sky_texture = "sky_texture"; //找到名為:ReflectionProbe 的游戲?qū)ο?GameObject fs = GameObject.Find("ReflectionProbe"); //獲取對(duì)應(yīng)的組件(可以獲取"ReflectionProbe"對(duì)象里面的任何組件,只需要修改<>中的名字) refProbe = fs.GetComponent<ReflectionProbe>(); //指定自定義反射紋理 refProbe.customBakedTexture = Resources.Load(sky_texture + "/Sky" + sky_i) as Texture;總結(jié)
以上是生活随笔為你收集整理的Unity 动态切换天空盒\反射天空盒材质的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实现RSA公私钥PKCS8与PK
- 下一篇: SM3算法对大文件做摘要