歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Unity中GUITexture淡出淡入控制

開發環境

Window7

Unity3D  3.4.1

MB525defy Android 2.2.1

這周工作中寫了一個第三人稱控制器,手感和魔獸世界基本一致,這是羽化第二次寫這種類似控制器了,因為前一次是為手機端寫的,所以這次寫的方面都很討巧,包括性能方面都提升很多,估計手機端也要在這個控制器上改寫~ ~爽啊,解決很多問題。這周和美術確定了人物制作方案,很多細節羽化都考慮不周全而美術方面想到了,的確受益匪淺,傳說原來在EA當過美術的男人就是NB- - 今才和師傅吃了頓晚飯,小兩口過得還不錯,真有家的感覺。傻傻的大學過去了,畢業後留下的只是感慨,感慨物價,感慨工資,感慨人參啊,哎~ ~ 但事實是畢業以後師傅肥了不少,羽化卻瘦了很多,悲劇啊-0- 最近玩一個第三人稱的TD游戲,國內翻譯叫“獸人必須死”,游戲內容很有創意,畫面優秀,難度適中,就是bug多了點,陷阱和技能設計雖然很有趣,但還是欠缺了點平衡,這種動作加防守元素的TD說不定是以後的一種趨勢,推薦給大家~ ~

這次羽化送上的是幫別人寫的一個小腳本,作用是控制GUITexture的淡出淡入,雖然不知道這位網友用來干什麼,既然她有需求,羽化以後也可能用得上,就簡單幫她寫了一個,這裡拿出來給大家分享下,沒經過優化,羽化准備以後再改寫。

本文工程源碼地址:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /pub/2011/10/25/Unity中GUITexture淡出淡入控制/

本次學習:

1. GUITexture淡出淡入控制腳本

2. Unity3D MMO游戲人物制作初步研究(附送--)


1. GUITexture淡出淡入控制腳本

這次腳本很簡單,直接貼出來了,其實做法很多,羽化用了一個很討巧的方法而已,若有什麼錯誤請各位看官指出- -

Fade.js只能用在GUITexture控件上

  1. var WaitTime : float = 10;  // 圖片顯示時間   
  2. var Speed : float = 0.01; //出現和消失速度   
  3. var time : float = 2; //淡出淡入間隔時間   
  4. var Alpha : float = 0.8; //顯示圖片最終透明度   
  5. var stop : boolean = false//暫停或者開始運行時是否運行   
  6. var Pictures : Texture2D[]; //顯示圖片數組   
  7. var x : float[];//圖片數組對應X   
  8. var y : float[];//圖片數組對應Y   
  9.   
  10. private var Fade : boolean;  
  11. private var rise : boolean;  
  12. private var i : int;  
  13. private var save : double;  
  14.   
  15. function Start()  
  16. {  
  17.     guiTexture.texture = Pictures[i];  
  18.     guiTexture.pixelInset.x = x[i];  
  19.     guiTexture.pixelInset.y = y[i];  
  20.     guiTexture.pixelInset.height = Pictures[i].height;  
  21.     guiTexture.pixelInset.width = Pictures[i].width;  
  22.     Fade = true;  
  23.     rise = true;  
  24.     Create.create = true;  
  25.     save = 0.0;  
  26.     i = 0;  
  27. }  
  28.   
  29. function Update()  
  30. {  
  31.     if(!Create.create)  
  32.     {  
  33.         Destroy(gameObject);  
  34.     }  
  35.     if(Input.GetKeyDown(KeyCode.Space))  
  36.     {  
  37.         stop = !stop;  
  38.     }  
  39.     if(!stop)  
  40.     {  
  41.         if(Fade)  
  42.         {  
  43.             FadeIn();  
  44.         }  
  45.         else  
  46.         {  
  47.             if(Time.time > save + WaitTime)  
  48.             {  
  49.                 FadeOut();  
  50.             }  
  51.         }  
  52.     }  
  53. }  
  54.   
  55. //淡入   
  56. function FadeIn()  
  57. {  
  58.     if(guiTexture.color.a < Alpha)  
  59.     {  
  60.         guiTexture.texture = Pictures[i];  
  61.         guiTexture.pixelInset.x = x[i];  
  62.         guiTexture.pixelInset.y = y[i];  
  63.         guiTexture.pixelInset.height =  Pictures[i].height;  
  64.         guiTexture.pixelInset.width = Pictures[i].width;  
  65.         guiTexture.color.a += Speed;  
  66.     }  
  67.     yield WaitForSeconds(time);  
  68.     if(rise && !stop)  
  69.     {  
  70.         Fade = false;  
  71.         rise =false;  
  72.         i++;  
  73.     }  
  74. }  
  75.   
  76. //淡出   
  77. function FadeOut()  
  78. {  
  79.     if(guiTexture.color.a > 0)  
  80.     {  
  81.         guiTexture.color.a -= Speed;  
  82.     }  
  83.     yield WaitForSeconds(time);  
  84.     if(!stop)  
  85.     {  
  86.         Fade = true;  
  87.         rise = true;  
  88.         save = Time.time;  
  89.         if(i == Pictures.Length)  
  90.         {  
  91.             Destroy(gameObject);  
  92.         }  
  93.     }  
  94. }  

這種方法允許效率並不高,還有很大的改良空間,但使用上完全可以應付各種需求。每個參數的作用羽化也有備注,這裡Pictures,X,Y的Size必須一致,其他參數可以自行更改,要不然會報錯哦- - 再者這裡的X,Y是以屏幕中央為中點的,所以這裡寫得不夠智能,大家可更具需求更改。


2.   Unity3D MMO游戲人物制作初步研究(附送- -)

與新來的3D美術同事研究了一個星期的人物制作方案,最終我們決定是使用換貼圖和Mesh的方法,羽化前面的文章中有介紹過人物換裝,但這種方法只能用在一些外部裝飾物上,至於有蒙皮的身體換Mesh就會報錯,所以這裡身體上准備制作多個Mesh,適應各種不同身體裝備,當然其中只有一個Mesh是Enable的,這裡就需要羽化寫代碼控制了,其實在魔獸世界中也應該是用同種方式,但魔獸90%的裝備只是換貼圖(羽化的85法師和戰士就是典型的例子- -),真正換Mesh身體的估計只有那些紫色裝備,所以這樣能節省很多資源,這只是初步研究的方案,以後若有機會羽化會寫份詳細的人物制作經驗分享給大家~ ~

Copyright © Linux教程網 All Rights Reserved