iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
自我挑戰組

Unity入門遊戲開發與實作系列 第 22

【Day 22】製作一個簡單 Unity 小遊戲(十一)終。添加 Welcome Page 和 Credits Page

  • 分享至 

  • xImage
  •  

昨天,我們完成了三個不同難度的關卡場景建置,並且這些場景都帶有跳關的程式碼,今天我們要來完成最後一部分,起始的觀迎介面和最後結束的頁面。

添加 Welcome Page

建立畫面元素

  • 我們再建立一個 Scene ,取名為 Welcome
  • 在這個場景中建立一個 Panel,取名為 Welcome 新建立的 Panel 都會有一個預設的白色背景,我們把 Inspector 面板中的 Source Image 調整為 None,接著在下方的 Color 選項中調整一個喜歡的顏色。
  • 在這個 Panel 裡面建立一些 UI 的 text。例如我加入了一些歡迎的文字,調整一下字型,大小到喜歡的位置。
    https://ithelp.ithome.com.tw/upload/images/20241006/20169301I6jbJGTXbg.png
  • 一樣在 Canvas 按下右鍵 -> UI -> Legacy -> Button ,創建一顆按鈕,一樣在屬性面板的地方把 Source Image 調整為 None,並在下方的 Color 選項中調整一個喜歡的顏色。
  • 點選 Add Component ,幫這個按鈕增加一個 Shadow 的 Component,我希望這顆按鈕能有一點的陰影。
  • 調整 Shadow 的 x 軸到0 ,y 軸到 -2。
    https://ithelp.ithome.com.tw/upload/images/20241006/20169301jYLrsNWKBD.png
    https://ithelp.ithome.com.tw/upload/images/20241006/20169301LUPyG6VIur.png

    完成後的效果

撰寫程式

當按下Start 之後,我們期望他應該要跳到 level_01 的場景,所以我們要對這個 Panel 寫一個小程式,來控制這個 Panel 底下的 Start 按鈕。創建一個 Menu.cs ,並將其拖拉到 Panel 中來套用。

// Menu.cs
using UnityEngine;
using UnityEngine.SceneManagement;

public class Menu : MonoBehaviour
{
    public void StartGame()
    {
  SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
    }
}

程式超級簡單,就只是添加一個像昨天一樣的換場景 Function,接著來到 Button 的 Inspector 面板中找到 On Click
https://ithelp.ithome.com.tw/upload/images/20241006/20169301b05citWvkb.png
現在沒有任何東西,我們點選 + 號來新增功能
https://ithelp.ithome.com.tw/upload/images/20241006/201693019lNrdaYXlg.png
在這裡必須要將 Hierarchy 中剛剛建立的 Welcome Panel 拖入這個框框內,因為我們的程式是套用在這個 Panel 上
https://ithelp.ithome.com.tw/upload/images/20241006/20169301GRJtixLaE4.png
這裡就出現了我們剛剛建立的 Menu.cs 腳本,我們順著找下去就能看到 StartGame() ,選擇這個 Function ,我們就完成了按鈕的設定

添加 Credits Page

建立畫面元素

這裡我們就不用這麼麻煩的再做一次,我們直接選取 Welcome 的 Scene 按下 Ctrl + D 來直接複製一份,修改一下文字變成 Thanks for playing,修改按鈕文字為 Quit ,多加一顆 Restart 按鈕,我們就得到了一個 Credits Page
https://ithelp.ithome.com.tw/upload/images/20241006/20169301LDLAvadthI.png

撰寫程式

我們需要刪除剛剛套用在 Panel 上的腳本,我們再新建立一個腳本,取名為 Credits.cs

// Credits.cs
using UnityEngine;
using UnityEngine.SceneManagement;

public class Credits : MonoBehaviour
{
    public void Quit()
    {
        Application.Quit();
    }

    public void Restart()
    {
        SceneManager.LoadScene("Welcome");
    }
}

我們分別建立了兩個 Function 用於這兩個按鈕,Application.Quit(); 會使遊戲當前視窗關閉,而 SceneManager.LoadScene("Welcome"); 則是跳回最一開始的 Scene。

接下來就套用程式到按鈕上,除了拖拉 Panel 到框框中,我們其實也可以直接把腳本拉進這個框框,有一樣的效果
https://ithelp.ithome.com.tw/upload/images/20241006/20169301CaEgzRnlXw.png
到這裡我們小遊戲的最後一塊拼圖就算是完成囉!

Build Settings

最後的最後,我們到 File -> Build Settings,在這裡我們一一把剛剛建立的場景拖拉到裡面,並且編排場景切換的順序,這樣能使得程式碼能正確的切換場景。
https://ithelp.ithome.com.tw/upload/images/20241006/20169301zBucwENOY1.png
到這裡,總共辛苦了十天,我們的小遊戲在這邊就算是告一個段落了!現在我們只要在 Welcome 的 Scene 按下 Play 按鈕,我們就能順利的在遊戲中的各個場景來回穿梭囉!

Build

總算把遊戲做好了!接著一樣在 Build Setting 裡面

  • 在下方 Player settings -> Player ,可以在這裡的 Resolution and Presentation 面板中調整視窗的大小
    https://ithelp.ithome.com.tw/upload/images/20241006/201693015UN03KVZ1a.png
    除了確認視窗大小,在這裡可以套用圖片來改變 app 的圖示

    調整完就可以關閉這個視窗

  • 按下 Build 並選擇一個資料夾導出就可以囉!
    https://ithelp.ithome.com.tw/upload/images/20241006/20169301jwI32o3bCr.png

  • 完成之後我們會在導出的目標資料夾內看到這些東西,而其中的 .exe 檔就是我們的遊戲囉!


終於完成了這一個小遊戲,透過這個遊戲也讓我對建立一個 Unity 遊戲的方法有一個架構,這次的練習要感謝一位國外的 Youtuber Brackyes 讓我對 Unity 有了更入的了解,接下來幾天。要透過另一位 Youtuber 的教學來製作一個經典的 flappy birds 遊戲,希望我在掌握 Unity 的基本邏輯和架構之後,能夠更快的上手這個遊戲的製作!

國外的 Youtuber 頻道連結:
https://www.youtube.com/watch?v=j48LtUkZRjU&list=PLPV2KyIb3jR5QFsefuO2RlAgWEz6EvVi6


上一篇
【Day 21】製作一個簡單 Unity 小遊戲(十)建立不同難度的關卡
下一篇
【Day 23】經典 Flappy Birds 遊戲實作(一)建立專案和導入 skybox
系列文
Unity入門遊戲開發與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言