Unity里實現更換游戲對象材質球


在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM