ETH官方钱包

切換
舊版
前往
大廳
主題

【碰撞器應(yīng)用+UI應(yīng)用】二、新增物件&元件介紹

澄鷹 | 2018-07-22 01:08:08 | 巴幣 504 | 人氣 1276

  在第一節(jié)中,我們已經(jīng)確定了我們這次需要在先前的遊戲中增加甚麼元素與修改甚麼功能:

  1.在場景中,我們需要新增:
    a.分?jǐn)?shù)
    b.血條
    c.扣血的物件
    d.補(bǔ)血的物件
    e.加分的物件
  2.修改掉多段跳的設(shè)定
  3.利用程式使分?jǐn)?shù)、血條增減能正常運(yùn)作

  這次的更新大概就這些,那我們可以開始製作了。

  ※教學(xué)內(nèi)容若有錯誤,歡迎在下方留言向我反應(yīng),感謝你們~ 

  ※解釋元件功能時(shí),我沒有提到的地方表示我沒有用過、不清楚那個功能的用法。

-----------------------------------------------------------------------------------------------------------------------------

  我們先在場景上增加我們所需要的物件,先把「分?jǐn)?shù)」這部分做出來。

  在Hierarchy上:右鍵→UI→Text

  新增Text物件之後,會發(fā)現(xiàn)他被放在一個「Cavas」底下。


  這是正常現(xiàn)象,只要新增的物件為「UI」,Unity就會自動建立Canvas這個物件,並且把所有新增的UI塞到這個物件底下。我們暫時(shí)先不理他,只要知道他是建立UI就會出現(xiàn)的東西就好。不用調(diào)整也不要刪除。

  現(xiàn)在我們點(diǎn)選剛剛新增的「Text」,來看看它擁有哪些屬性和設(shè)定:


  最上面的「Text」是這個物件的名稱。這是我們?yōu)榱俗龇謹(jǐn)?shù)而建立的物件,所以我將它命名為「Score」

  在這次的教學(xué)中,我們會用到名稱下面的Tag。至於Layer我們先暫時(shí)不提,等到日後有機(jī)會再來討論它。

  不過,我們暫時(shí)還用不到Tag,所以也先不用設(shè)定,先繼續(xù)往下看這個物件擁有的屬性和設(shè)定:

  Rect Transform:與Transform有相同的功用,不過較為不同的是,這個元件可以為物件個別設(shè)定寬與高,而且具有對齊的功能。
    :對齊。
    Pos X、Y、Z:位置。
    Width:物件的寬。
    Height:物件的高。
    Rotation:方向、旋轉(zhuǎn)角度。
    Scale:大小。

  ※這個元件通常出現(xiàn)在「UI」類型的物件當(dāng)中。取代Transform元件。

  ※UI與一般物件最大的不同在於,UI會跟著螢?zāi)灰苿樱琔I的長寬設(shè)定也是根據(jù)螢?zāi)坏拇笮《āMǔS渺哆[戲中「選單」、「功能鍵」等不會隨著遊戲場景而移動的物件。

  ※UI會在圖層的最上層。也就是一定會覆蓋其他非UI物件顯示在螢?zāi)簧系囊馑肌?/td>
  Text (Script):Text物件必有的元件。用來顯示一段文字。
    Text:顯示的文字內(nèi)容。為Text元件最主要的部份。
    Character:字體設(shè)定。
      Font:字型設(shè)定。
      Font Style:字體風(fēng)格(斜體、粗體等)
      Font Size:字體大小。
      Line Spacing:行距。
    Paragraph:段落設(shè)定。
      Alignment:對齊。
    Color:字體顏色。

  ※Paragraph中Alignment的對齊設(shè)定與Rect Transform的對齊不一樣的地方在於:Rect Transform的對齊是指這個物件與螢?zāi)淮笮≈g的位置關(guān)係;Alignment的對齊是指字串與這個物件大小之間的位置關(guān)係。

  在上圖中,黑框表示螢?zāi)还?fàn)圍,藍(lán)框表示物件範(fàn)圍,中間的「YA」則是文字。

  以上圖的位置關(guān)係來說,Rect Transform的對齊應(yīng)該是「靠左靠上對齊」,Alignment的對齊應(yīng)該是「垂直水平置中對齊」


  建立完物件之後,在場景中或許還看不到任何東西,又或許他可能會出現(xiàn)在很奇怪的位置,沒關(guān)係,這也是正常現(xiàn)象。

  我們可以運(yùn)用剛剛所說的,Rect Transform的對齊功能,來快速設(shè)定我們的物件位置。


  點(diǎn)開它之後,會跑出這個小窗格:


  然後,按住Alt+Shift,會看到它的樣子改變了:


  選擇左上方那個圖像:


  這時(shí)候,查看Game視窗的畫面,應(yīng)該可以在畫面的左上角看到小小的「New Text」字樣。


  不過,這樣的文字有太多缺點(diǎn)。第一、顏色太深看不清楚。第二、太貼近邊界,感覺好擠。

  所以我們回到Rect Transform,將Pos X與Pos Y分別設(shè)定成10、-10


  並且到Text元件中,設(shè)定字體的顏色:


  直接點(diǎn)選色條,就會跳出色彩的視窗:


  我們在下方的「Hex Color」輸入欄位中,填入8個F。將顏色設(shè)定為純白色。


  設(shè)定完成,這樣的畫面是不是看起來舒服多了呢?


  這個字串「New Text」似乎並不是我們需要的文字,雖然我們可以先不理它,因?yàn)橹釙贸淌礁淖兯@示的文字內(nèi)容,不過,如果今天我們著手的是一個大型的遊戲?qū)0福⒑肬I之後沒有特別設(shè)定的話,乍看之下有可能會無法理解這個Text是被拿來做甚麼用的。

  所以,我們需要把預(yù)設(shè)顯示的文字改掉。

  點(diǎn)選Score之後,查看Text元件,剛剛有說在Text元件下有一個Text的設(shè)定,這是用來設(shè)定顯示的文字內(nèi)容的。我們將它改成「分?jǐn)?shù):」


  現(xiàn)在,在Game視窗中會變成這樣:


  有沒有感覺好像有一點(diǎn)FU了啊

  我們要拿來顯示分?jǐn)?shù)的物件已經(jīng)完成了,根據(jù)我們一開始想要增加的遊戲元素,我們還需要新增一個血條。

  在Hierarchy上:右鍵→UI→Slider


  沒有意外的話,會看到畫面中出現(xiàn)了一個長條型的滑動條。我們會用這個來當(dāng)作我們的血條。

  ※注意,如果新增Slider之後,發(fā)現(xiàn)在Hierarchy中的階層關(guān)係是這樣:


  那在之後製作的過程可能也會發(fā)生一些問題,為了以防萬一,我們將Slider向外拉到與Score同樣階層的地方。像這樣:


  新增完之後,點(diǎn)選Slider,我們來看看新增的這個物件有甚麼屬性和設(shè)定。


  Slider (Script):Slider物件必有的元件。用來製作出像血條那樣的滑動條。
    Interactable:用來設(shè)定是否可以手動調(diào)整滑動條的數(shù)值。
    Normal Color:調(diào)整數(shù)值的控制桿,正常情況的顏色。
    Highlighted  Color:調(diào)整數(shù)值的控制桿,被游標(biāo)指著時(shí)的顏色。
    Pressed  Color:調(diào)整數(shù)值的控制桿,被游標(biāo)按著的顏色。
    Disabled  Color:調(diào)整數(shù)值的控制桿,無法使用時(shí)的顏色。
    Min Value:滑動條的最小值。
    Max Value:滑動條的最大值。
    Value:滑動條當(dāng)前的數(shù)值。

    On Value Changed (Single):當(dāng)滑動條被改變的時(shí)候,觸發(fā)事件。

  首先,我們先把Slider的名字改成「Healthy」,這是我們的血條。

  再來,我們新增的Healthy出現(xiàn)的地方真的很詭異,必須重新設(shè)定它的位置。

  選擇「Healthy」後,查看它的Rect Transform。並且像設(shè)定Score一樣,用同樣的方法,點(diǎn)開對齊的圖案,按住Alt+Shift......

  到這裡,與剛剛不同的是,我們這次選擇的是這個:


  中間上方的圖示。這是水平置中向上對齊,與剛剛的「靠左靠上對齊」不同。我們打算讓我們的血條顯示在畫面的中間正上方。

  ※在對齊設(shè)定中,按住Alt+Shift與沒有按住的差別,之後有機(jī)會會再詳細(xì)說明。現(xiàn)在我們先不理它,只要知道如果要讓它以整個螢?zāi)粸榛鶞?zhǔn)對齊的話,要按住Alt+Shift再設(shè)定。

  靠上對齊之後,發(fā)現(xiàn)它的位置太靠近邊界,我們回到它的Rect Transform中,把Pos Y設(shè)成 -10。

  我們Healthy的位置已經(jīng)設(shè)定好了,再來需要稍微調(diào)整一下,將他調(diào)整成我們心目中期待的樣子。

  既然它是血條,那麼它應(yīng)該不會有一個可以調(diào)整的控制桿:


  我們需要把這個東西刪掉。所以回到Hierarchy中,點(diǎn)選Healthy旁邊的箭頭,將Healthy打開。


  然後把用來顯示那個控制桿的部分刪掉,選擇「Handle Slide Area」後,然後直接Delete刪掉它

  到這裡,我們已經(jīng)把血條基本的樣子做出來了,不過他現(xiàn)在與分?jǐn)?shù)一樣甚麼功用都沒有,是因?yàn)槲覀冞€沒有用程式控制它。

  不過現(xiàn)在沒有功用也沒有關(guān)係,我們只是先把這次要新增的遊戲元素「外觀」做出來,實(shí)際功能的實(shí)現(xiàn)我會留到程式說明那一節(jié)再討論。

  血條與分?jǐn)?shù)都已經(jīng)新增完畢,再來就是需要新增遊戲中會與角色進(jìn)行互動的三種物件。

  一樣,回到Hierarchy中,這次點(diǎn)選右鍵→2D Object→Sprite。就像【新手入門】中,我們新增Floor與Player一樣。

  新增完之後,我們把Sprite的圖片設(shè)定為「Background」。(如果忘記怎麼設(shè)定,可以回去看【新手入門】三、新增物件、場景&元件介紹

  把它的Position分別設(shè)定成:5、-3.3、0

  把它的Scale設(shè)定成:5、5、1


  在遊戲中會像這樣子:


  不過,這樣子我們新增的物件會和Player長得太相似,所以點(diǎn)選New Sprite。我們把它的Color調(diào)成紅色。

  調(diào)整顏色的方法與剛剛調(diào)整分?jǐn)?shù)字體顏色的方法相同,只是在Hex Color後面是輸入「FF0000FF」


  最後,我們把這個物件的名稱重新命名為「Damage」,這是會讓我們的角色扣血的物件。

  做到這裡,是不是開始覺得厭煩了呢?不停地重複新增東西、不停地重複設(shè)定。沒關(guān)係,再來的兩個物件,我們可以以Damage物件為原型,直接複製貼上。

  點(diǎn)選Damage物件之後,按兩次Ctrl+D,這是Unity再製物件的快捷鍵。

  會發(fā)現(xiàn)在Hierarchy中,出現(xiàn)了兩個新的物件,分別為「Damage (1)」和「Damage (2)」

  我們省去了再次新增物件與設(shè)定圖片的步驟。只要將這些物件重新命名並設(shè)定位置和顏色之後,就大功告成了。

  就像一開始設(shè)定Damage一樣,我們重新設(shè)定:

  Damage (1):
    重新命名為:Complement。這是我們用來補(bǔ)血的物件。
    Postion:8、-3.3、0。
    Color:00FF00FF。

  Damage (2):
    重新命名為:Star。這是我們用來增加分?jǐn)?shù)的物件。
    Position:-5、-3.3、0。
    Color:FFFF00FF。

  現(xiàn)在,我們在遊戲中的畫面大概長得像這樣:


  ※數(shù)值不是絕對的。如果數(shù)值與我相同但畫面卻和我不同沒有關(guān)係,只要自己稍微調(diào)整一下到差不多的位置就好。

  到目前為止,我們已經(jīng)新增了血條、分?jǐn)?shù),還有三個我們當(dāng)初想要新增的物件。

  基本的物件已經(jīng)新增完畢。下一節(jié)開始,會說明每個物件在Inspector裡,名稱下方的Tag的意義以及用法。

  下一節(jié)除了Tag的說明之外,還會稍微接觸到一點(diǎn)程式。因?yàn)樵谶@次的遊戲更新中,我們會用Tag的方式讓程式與物件做連結(jié)。

  那麼,這次的教學(xué)就到這裡為止,我們下次再見!


========================================================================

  【碰撞器應(yīng)用+UI應(yīng)用】

  二、新增物件&元件介紹



  補(bǔ)、遊戲製作談
送禮物贊助創(chuàng)作者 !
0
留言

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作