在unity中本來想實現在一個背景牆上更換圖片的功能
在網上查了一些資料說是用Image,但我是新手小白剛接觸Unity不久好多組建還不會用,就想能不能通過改變游戲對象的材質球來更換游戲對象的背景。
查了一些帖子,參看了前輩們的一些做法,實現了這個功能,現在分享給大家。我是小白一個,技術還不成熟,有些術語表達還不夠准確,后來者如果看到這篇帖子,敘述不當之處還請多多包涵,這也是我在CSDN上的第一篇文章
實現過程如下:
1. 在場景中新建一個游戲對象 Creat---->3D object---->Plane
把 Panel 由水平方向調整為豎直方向,使它看起來像一塊背景牆。並重新命名為Scren(意思就是作為一個屏幕)。
2. 找兩張圖片1和2拖到Assets中,另外在Assets下新建一個文件夾命名為Resources。將這兩張圖片分別拖拽到Scren上可以生成兩個材質球。
在Resources文件夾中新建一個Materials文件夾,兩張圖片生成的兩個材質球放在Materials文件夾中。
3. 新建一個腳本文件 imagePlay.cs,並把這個腳本拖拽到Scren游戲對象上,完成Scren對象綁定腳本的操作。在imagePlay.cs中寫入如下代碼,就可實現運行時Scren有背景的效果。如果需要更換背景就在update( )函數中寫更換背景的條件。
紅色為核心代碼
void Start () {undefined this.gameObject.GetComponent<MeshRenderer>().material = Resources.Load<Material>("Materials/1"); }
這是我在另外一個文件中設置的一個照片切換的變量flag,讀者可以根據自己的需要去寫這個Update()函數,核心代碼就是那一句獲得材質球並顯示出來。
void Update () {undefined if (CameraSwitch.flag==2) {this.gameObject.GetComponent<MeshRenderer>().material = Resources.Load<Material>("Materials/2");} }
效果如下:
4.為什么要在Assets中新建一個Resoures文件夾,並把材質球導入其中可能是獲得材質球的方法要求的吧,Resources.Load<Material>("Materials/2")。方法調用這塊我還不太熟悉,以后隨着學習深入再來補充吧。此處參考了一個百度貼吧中一個吧友的回復,在此表示感謝。
參考貼文地址如下:
http://tieba.baidu.com/p/4873301334