✦ using
◌ 代表使用哪些 Library( 函式庫 ),如同使用工具箱的概念。
◌ 撰寫方式為 using + 命名空間。
✦ public
◌ 是類型和類型成員的存取修飾詞,意指 未限制存取 ,大家都可以取用。
✦ class
◌ 用於宣告類別
✦ MonoBehaviour
◌ 代表繼承 MonoBehaviour 這個類別。
◌ 擁有這個類別,就可以使用一些 Unity 專有的功能。
✦ Start( )
◌ 在第一幀畫面渲染出來( Update )之前,執行 Start 括號中的程式碼,並且 只執行一次 。
◌ 通常會在 Start 的程式裡面 設定遊戲初始值 ,將資料進行初始化(initialize)。
✦ Update( )
◌ Update 中的程式碼,在遊戲開始後,畫面 每更新一幀,都會執行一次 。
◌ 通常會將需要不斷進行判斷或執行的程式放在 Update 裡面。
✦ //
◌ 寫在雙斜線後的文字,皆為註解,將 不影響程式執行 。
📝 古古的小提醒: 更多詳細內容可以 點此複習 喔!
基本資料型別
✦ int
◌ 整數,有正負號。
◌ EX: 0, 1, 2 ……
✦ float
◌ 浮點數,儲存含有小數點的值。
◌ 值的後方 須加上一個 **f** 。
◌ EX: 0.5f, 1.3f, 2.7f ……
✦ bool
◌ 布林值,是存放 true 或 false 的變數,用來判斷對錯。
✦ string
◌ 字串,前後使用 雙引號 包裝。
◌ EX: “ Hello World ! ” , “ GUGU “ , “ C “ ……
✦ char
◌ 字元,前後使用 單引號 包裝。
◌ 此型別 較少使用 ,因字元也可以使用字串的方式表示。
◌ EX: ‘A’ , ‘B’ , ‘C’ ……
變數宣告
✦ 宣告方式
◌ `資料型別` `變數` = `值` ;
◌ 變數可以自行命名,值也可以隨意指定。
◌ EX: int num = 10; , float num1 = 10.5f ; , bool con = true;
示意圖以 int num = 10 ;
為例
資料型別的四則運算
✦ 四則運算小練習
請利用以下宣告之變數,計算出第 1 ~ 5 題的值。
int num = 10;
int num1 = 4;
float num2 = 10.5f;
bool con = true;
string name = "GUGU";
char first = 'C';
// 第一題
Debug.Log(num / num1);
// 第二題
Debug.Log(name + num1);
// 第三題
Debug.Log(name + first);
// 第四題
Debug.Log(num2 * 100);
// 第五題
Debug.Log(num + num + num);
解答與解析 —— 點擊左側三角形展開查看
➊ num / num1 == `2`
雖然 10 ÷ 4 的結果應為 2.5,但在程式當中,因為有型別的限制 ( 強型別 / 弱型別 ),因此在沒有進行型別轉換的情況下,用整數除以整數的結果,也會等於整數。
➋ name + num1 == `GUGU4`
字串+其他 = 字串 ➔ 在這個輸出結果當中的 4 也因此轉換成字串的形式。
➌ name + first == `GUGUC`
在程式裡面,每個文字都要斤斤計較,包含大小寫。
➍ num2 * 100 == `1050`
剛好進位的關係,因此 .0 並不會顯示。
➎ num + num + num == `30`
num = 10,因此 num + num + num = 10 + 10 + 10 = 30。
** 💡古古的小提醒:** 可以多多利用
Debug.Log()
搭配 console ****列印結果,如果忘記用法的話也可以 點此複習 唷!
Function( 函式 )
✦ 使用方式
◌ `void` / `資料型態` `方法名稱` `( )` `{ }`
◌ 可視為一個執行單元,將程式碼寫在 { } 中,方便在需要時進行 收納與呼叫。
示意圖以 void Test1( ) { }
為例
** 📝古古的課程補充:**
➊ `void` 代表不回傳任何東西。
➋ `方法名稱` 可自行命名,但開頭字母需大寫,且不得為數字或其他符號。
➌ `()` 可導入參數。
➍ `{ }` 中夾帶程式內容。
if / else if / else 條件判斷式
✦ 使用方式
◌ 意為「 如果某條件成立 」就要…,「 否則 」就要...的需求。
◌ 層級由大至小依序為 if **➔** else if **➔** else 。
◌ if 條件判斷式 可單獨出現 。
◌ else if 條件判斷式的數量可以是零個,也 可以有很多個 ,依條件數量而定。
◌ 當「 已有一個條件滿足並執行結果 」的情況下, 便 不再接續判斷其餘條件 。
◌ if / else if / else 基礎語法如下:
if ( 條件A )
{
程式區塊A // 如果條件A為true,執行此區塊的程式碼
}
else if ( 條件B ) // 如果條件A為false,才會檢查條件B
{
程式區塊B // 如果條件B為true,則執行此區塊的程式碼
}
else
{
程式區塊C // 如果以上條件判斷都為false,則執行這個區塊的程式碼
}
以上述條件判斷式為例,當呼叫 Test2 時,Console 介面將印出 Yes3 的結果。
** 📝 古古的課程補充:**
基礎判斷符號介紹 -==
:等於 /&&
:and /||
:or /!
:not
✦ 條件判斷小練習
請透過以下宣告之變數,判斷出第 1 ~ 6 題的結果。
int numA = 100;
int numB = 100;
int numC = 10;
bool isPass = false;
string jobTitle = "Boss";
// 第一題
if( jobTitle == "Boss" )
{
Debug.Log( "A" );
}
// 第二題
if( isPass )
{
Debug.Log( "B" );
}
// 第三題
if( !((numA * 100) / (10 * 10) != numB) )
{
Debug.Log( "C" );
}
// 第四題
if( jobTitle + "s" == "bosss" )
{
Debug.Log( "D" );
}
// 第五題
if( numA >= numB )
{
Debug.Log( "E" );
}
// 第六題
if( (numC + "0") == ("10" + "0") )
{
Debug.Log( "F" );
}
解答與解析 —— 點擊左側三角形展開查看
➊ jobTitle == "Boss" 條件成立,印出 A
字串 = 字串,且大小寫相同,因此條件成立。
➋ isPass == false,不執行結果
條件判斷須為 true 才會執行 { } 中的程式碼。
➌ !((numA * 100) / (10 * 10) != numB) 條件成立,印出 C
括號中的程式碼優先進行運算,得出 (numA * 100) / (10 * 10) = numA。
再來判斷,numA != numB( numA 不等於 numB )為 false。
最後整理完的程式碼為 !( false ) = not false = true,表示條件成立。
➍ jobTitle + "s" != "bosss",不執行結果
jobTitle + “s” 應為 “Bosss” 而非 “bosss”,表示條件判斷式中 ( jobTitle + “s” == “bosss” ) 的條件不成立,因此不執行結果。
➎ numA >= numB 條件成立,印出 E
判斷 numA 是否大於或等於 numB,由於 numA = 100 = numB,因此條件成立。
➏ (numC + "0") == ("10" + "0") 條件成立,印出 F
字串+其他 = 字串 ➔ 因此 numC + “0” = “10” + “0” 是正確的敘述。
for 迴圈
✦ 使用方式
◌ 用來 處理重複的事件 ,且可自動化執行某些固定的步驟與流程。
◌ 每次要進入 for 迴圈時,都會先執行初始設定式一次。
◌ 在每次要執行迴圈主體之前,都會先檢查持續條件是否成立。
◌ 持續條件成立,才會繼續執行下一次的迴圈主體。
◌ 每完成一次迴圈主體,都會執行迭代式一次,然後再檢查是否達成持續條件。
◌ for 迴圈 基礎語法如下:
for (初始變數; 持續條件; 迭代式)
{
陳述句一;
陳述句二;
}
📝古古的課程補充:
◌ while 迴圈 與 for 迴圈類似,皆是用來處理重複的事件。
◌ 寫法:while ( 條件A ) { 程式區塊B }
➔ 若條件 A 成立,則不斷執行程式區塊 B,反之,則離開迴圈。
◌ 需小心不要落入 無窮迴圈 當中。
◌ 在 Unity 中較不常用,因其功能與 Update 用法類似。
✦ for 迴圈小練習
請透過以下程式碼,判斷出第 1 ~ 5 題的結果。
// 第一題
for( int i = 0; i < 10; i++ )
{
Debug.Log( i );
}
// 第二題
int sum = 10;
for( int i = 0; i < 10; i++ )
{
sum = sum + i;
}
Debug.Log( sum );
// 第三題
for( int i = 0; i < 10; i+=2 )
{
Debug.Log( i );
}
// 第四題
for( int i = 10; i <= 1; i-- )
{
Debug.Log( i );
}
// 第五題
for( int i = 11; i < 10; i-- )
{
Debug.Log( i * 20000 + 100 * 12345 - 70 * 456 + 80 * 2100 );
}
解答與解析 —— 點擊左側三角形展開查看
➊ Debug.Log( i ) = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
i 的初始值為 0,每完成一次迴圈 i 的值會加 1,直到 i ≥ 10 時停止迴圈。
因此最終輸出結果為 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
➋ Debug.Log( sum ) = 55
在此迴圈中,i 的值為 0 ~ 9,且 sum 初始值為 10。
因此 sum = sum + i = 10 + 0 + 1 + 2 + …… + 9 = 55。
➌ Debug.Log( i ) = 0, 2, 4, 6, 8
i 的初始值為 0,每完成一次迴圈 i 的值會加 2,直到 i ≥ 10 時停止迴圈。
因此最終輸出結果為 0, 2, 4, 6, 8。
➍ 不執行程式碼
此迴圈需在 i ≤ 1 時才會執行,但初始值為 10,條件不符,因此不執行。
➎ 不執行程式碼
此迴圈需在 i < 10 時才會執行,但初始值為 11,條件不符,因此不執行。