iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0
自我挑戰組

30天做中學unity遊戲設計系列 第 4

Day04-方塊移動程式碼解釋

  • 分享至 

  • xImage
  •  

今天在架我自己的網站,花掉很多時間:(,所以今天就寫少一點吧,不好意思囉。

今天我們來解釋昨天用來控制方塊移動的程式碼。

using UnityEngine;

public class Move_Script : MonoBehaviour
{
    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            transform.position += Vector3.left;
        }
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            transform.position += Vector3.right;
        }
    }
}

Unity的語法基本上是C#,不過沒有學過的也不用太擔心,因為要使用Unity就算是已經熟悉C#的人都要學很多新東西,所以就讓我們開始吧。

首先來看第一行

using UnityEngine;

先來拆解它,using 直接翻譯過來就是使用,它的用法是using+你的命名空間,讓編譯器知道要尋找C#沒有定義的工具的時候可以來這個命名空間裡面找。
因為我們常常會用到Unity定義的像是Vector3、Input等等函式、型別,因為這些東西不是C#原本就有的,所以就要加這一行讓編譯器知道當我們使用這些東西的時候要去UnityEngine這個命名空間裡面找。如果不加也不是不行,但是就要在程式的前面加UnityEngine,像是Input.GetKeyDown就要改成UnityEngine.Input.GetKeyDown,讓編譯器知道去哪裡找。

然後是

public class Move_Script : MonoBehaviour

publuc 就是公開的意思對吧,而class是用於創建一個類別,所以合起來就是創建一個叫做Move_Script的公開類別, : 在C#裡面就是繼承的意思,而MonoBehaviour是Unity裡所有可以掛在物件上的程式的基底類別,它提供像是Start、Update函式等等功能,所以讓我們的Move_Script繼承它之後,Move_Script就可以取用這些函式,如果不讓Move_Script繼承MonoBehaviour的話,它就只是一個一般的C#程式,可以說是MonoBehaviour讓它有了一顆Unity的心。

接著看到

void Start(){

}
void Update()
    {
      
}

Start函式裡面的程式碼會在每一次Move_Script這個程式碼被呼叫的時候執行一次,一般會拿來放初始化相關的東西,以我們這個程式來說暫時不會用到。
Update函式則是程式進行的每一幀都會執行一次,Move_Script主要的功能目前全都寫在它裡面。

再來是

if (Input.GetKeyDown(KeyCode.LeftArrow))
{
        transform.position += Vector3.left;
 }

if()會去判斷括號裡的條件是否成立,如果成立的話就會執行大括號裡的程式。
Input.GetKeyDown會去判斷是否有按鈕被按下,如果它又剛好是KeyCode.LeftArrow(即← 鍵)的話就會回傳true讓大括號內的程式執行。

接著看大括號裡的程式
transform就是這個物件的Transform,position、scale、rotation都算Transform,所以transform.position就是取這個物件的位置,Vector3是Unity裡定義的類別,用於存各種三維結構,像是位置就是其中一種,其中Vector3.left就是(-1,0,0),所以transform.position += Vector3.left;就是讓物件向左移動一格。

Right的部分除了把left改成right以外其他都一模一樣。


上一篇
Day03-Unity介面及會動的方塊
下一篇
Day-05 繪製背景
系列文
30天做中學unity遊戲設計8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言