iT邦幫忙

2022 iThome 鐵人賽

DAY 27
0
自我挑戰組

老菜雞挑戰30天學爆Unity&C#會成功嗎?...系列 第 27

【Day27】老菜雞學下樓梯遊戲之新增按鈕(Unity UI Button)

  • 分享至 

  • xImage
  •  

前言

為了讓玩家可以在遊戲輸掉後重玩該遊戲,所以現在要來新增按鈕UI...


新增UI-Button

首先,在左側Hierarchy點滑鼠右鍵新增一個UI→Button
https://ithelp.ithome.com.tw/upload/images/20221006/20152411KQ9mxyATMe.jpg
→取名為ReplayButton
https://ithelp.ithome.com.tw/upload/images/20221006/20152411vOJjHNBuBw.jpg
接著可以來調整按鈕的屬性。

首先先把這個按鈕移動到中央,把它的x跟y值調成零就會到正中央了。
https://ithelp.ithome.com.tw/upload/images/20221006/20152411uC0hmNDfgQ.jpg
按鈕的大小、文字也修改一下,文字這邊寫"Continue",字體改粗體。
https://ithelp.ithome.com.tw/upload/images/20221006/20152411N5nLDz3LYn.jpg

現在有個問題是,這個按鈕當遊戲開始後它就會一直出現,但我們是要它等到遊戲結束的時候才跑出來,所以要先把它右上角的勾勾取消掉。
https://ithelp.ithome.com.tw/upload/images/20221006/20152411KcbdJhatfb.jpg
到Player.cs創建按鈕的遊戲物件
[SerializeField]GameObject replayButton;
存檔後回到Unity介面中會看到Player物件右欄Player(Script)會多一列Replay Button,接著就要把剛剛建好的按鈕UI(ReplayButton)拖曳到那。

再回到Player.cs,由於我們現在是要讓遊戲結束時才顯示出按鈕,所以要判斷在Player死亡的瞬間加上讓按鈕顯示出來的程式碼replayButton.SetActive(true);之前也有用到這行程式碼過,意思就是讓物件顯示出來,剛剛取消的那個勾勾再回到打勾的狀態。

要加這行程式碼在ModifyHp方法裡的else if(Hp <= 0)判斷式裡,及OnTriggerEnter2D方法碰到DeathLine的判斷式裡。

試玩~
第一種狀況:血量扣完的時候

第二種狀況:掉出視窗


  • 參考網址:https://www.youtube.com/watch?v=nPW6tKeapsM&ab_channel=GrandmaCan-%E6%88%91%E9%98%BF%E5%AC%A4%E9%83%BD%E6%9C%83

  • 音效、圖片 : 遊戲素材
    (素材由安德斯提供,感謝大大/images/emoticon/emoticon41.gif)


上一篇
【Day26】老菜雞學下樓梯遊戲之如何讓遊戲暫停(Unity Time.timeScale)
下一篇
【Day28】老菜雞學下樓梯遊戲之設定Button的觸發事件(Unity Button.onClick)
系列文
老菜雞挑戰30天學爆Unity&C#會成功嗎?...30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言