2016年7月27日 星期三

【Unity官方教學分享】規則和語法

網頁連結

如何開啟CC字幕?

本篇文章要介紹規則(Conventions)和語法,程式語法是一種有結構性的語言,加上一些必要的規則就可以閱讀並且撰寫程式。
舉例來說,點符號運算子(dot operator)。
點符號運算子輸入時為英文的句號 ".",如下面程式碼看到的,它在兩個單字之間。
using UnityEngine;
public class BasicSyntax : MonoBehaviour 
{
    void Start () 
    {
        Debug.Log(transform.position.x);
    }
}
撰寫方式就像寫地址一樣,假設把Debug當作是國家,打上 . 後接著Log就是在Debug之下的城市。
再以transform為例,transform是國家,position是城市,而x就是position之下的某個區。

簡單來說,點符號運算子是用來分割Unity內的複合功能,讓該發者可以依階層尋找需要的變數或函式,接著看以下程式碼。
using UnityEngine;
public class BasicSyntax : MonoBehaviour 
{
    void Start () 
    {
        Debug.Log(transform.position);
        Debug.Log(transform.rotation);
        Debug.Log(transform.localScale);
    }
}
可以看到在transform之下分別有,position、rotation和localScale,也就是位置、旋轉和比例,透過transform後的 . 選擇。

下一個規則是分號 ;。
分號通常會接在一句程式碼結束的位置,但不一定所有的程式碼結束都會接上分號,舉例來說。
using UnityEngine;
public class BasicSyntax : MonoBehaviour
{
    void Start ()
    {
        Debug.Log(transform.position.x);

        if (transform.position.y <= 5f)
        {
            Debug.Log("I'm about to hit the ground!");
        }
    }
}
類別的開始 { 與結束 } ,函式或條件判斷式if的開始與結束等等,當遇到 {} 的地方分號都是不需要的。

接下來是縮排,縮排雖然不是程式碼的規則之一,但可以讓你的程式碼漂亮而且清楚,讓自己或其他人容易閱讀程式碼,來看一段沒有縮排的程式碼。(全選程式碼後,按下shift+tab可以將縮排往左移)
using UnityEngine;
public class BasicSyntax : MonoBehaviour
{
void Start ()
{
Debug.Log(transform.position.x);
if (transform.position.y <= 5f)
{
Debug.Log("I'm about to hit the ground!");
}
}
}
首先這段程式碼最外層為標註黃色的部分,而在類別BasicSyntax從第一個{開始,到最後一個}結束,而BasicSyntax中的內容就需要縮排一次,全選當中的內容按下tab
using UnityEngine;
public class BasicSyntax : MonoBehaviour
{
    void Start ()
    {
    Debug.Log(transform.position.x);
    if (transform.position.y <= 5f)
    {
    Debug.Log("I'm about to hit the ground!");
    }
    }
}
縮排完後會像這樣,接下來依上面的規則,對Start函式內程式碼做一次縮排,做完Start函式內的縮排,再對if條件式內做縮排
using UnityEngine;
public class BasicSyntax : MonoBehaviour
{
    void Start ()
    {
        Debug.Log(transform.position.x);
        if (transform.position.y <= 5f)
        {
            Debug.Log("I'm about to hit the ground!");
        }
    }
}
這樣縮排就完成了,可以將程式碼依階層劃分,函式或條件式的開始結束也容易查看。
編譯器只要按下換行,通常會有自動縮排的功能,但如果有縮排錯誤,按下tab一次就是往右縮排一次。

最後是註解,輸入是打//後接上一行要註解文字,或是在/**/中輸入多行的註解文字。
using UnityEngine;
public class BasicSyntax : MonoBehaviour
{
    void Start ()
    {
        //print the x position
        Debug.Log(transform.position.x);
        /*
            line 1
            line 2
        */
        if (transform.position.y <= 5f)
        {
            Debug.Log("I'm about to hit the ground!");
        }
    }
}
註解中的文字在程式編譯時,會被跳過不被編譯,所以還有以下用法。
using UnityEngine;
public class BasicSyntax : MonoBehaviour
{
    void Start ()
    {
        //print the x position
        Debug.Log(transform.position.x);
        /*
        if (transform.position.y <= 5f)
        {
            Debug.Log("I'm about to hit the ground!");
        }
        */
    }
}
if判斷式被包含在註解當中,這段程式碼為無效的狀態,編譯後這段程式碼不會執行。

以上是規則和語法的說明。
這次就到這裡。

沒有留言:

張貼留言

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...