遊戲是學習 www.GameIsLearning.url.tw ar vr教育遊戲式學習 王啟榮 unity教學網站 行動遊戲學習平台

討論區 > Unity 教學與學習

unity C# 語法教學入門

王啟榮 發表於 2018/08/27_22:04  ( 最後修改 2019/10/26_13:12 )

● 註解: // 單行註解   /* 多行註解 */

● 宣告變數: int a = 6; // 宣告一個名稱為 a 的變數,資料類型為整數、值為 6
       要把 a 加 1 可寫 a=a+1 或 a++;   要把 a 加 5 就寫 a+=5;

● 常用資料類型: int -> 整數
 (注意大小寫)   float -> 浮點數(有小數點的數。數字後要加 f,例如 3.6f )
         string -> 字串(前後都要加",例如"abc")
         bool -> 布林(值只有 true 或 false 兩種)
         GameObject -> 遊戲物件
         Vector3 -> 簡單來說就是一組(x,y,z)

 ◎ 字串與數字轉換: int.Parse("67"); // string 轉 int
            float.Parse("25.36"); // string 轉 float
            65.ToString(); // 數字轉 string
            yourFloat.ToString("0.00"); // float 轉 string 並取到小數第2位

 ◎ 字串相關: string[] words = yourString.Split('_'); // 分割字串(以_符號為例)
         yourString.Substring( 0, 2 ); // 抓取子字串(從第1個字開始連續抓2個)
         yourString.Length; // 抓取字串長度
         yourString.ToLower(); // 把字串中所有大寫英文字母轉成小寫
         yourString.ToUpper(); // 把字串中所有小寫英文字母轉成大寫

● if 判斷式:
 if ( n > 50 ){ } // 如果 n 大於 50 就執行
 else if ( n == 10 ){ } // 如果 n 等於 10 就執行
 else { } // 以上條件都不符合,就執行 else
 同一個判斷式最多只會執行一個結果(最先符合條件者),撰寫時要留意先後順序。

 關係運算子: 等於== 不等於!= 大於> 大於等於>= 小於< 小於等於<=
 邏輯運算子: 且&& 或||
 例如: if ( a>5 && b==3 ){ } 代表要同時符合 a>5 和 b==3 這兩個條件才行
    if ( a>5 || b==3 ){ } 代表只要符合 a>5 或 b==3 其中一個條件即可

 判斷布林值為 true 或 false 時:
   if ( a==true ) 可寫為 if ( a )
   if ( a==false ) 可寫為 if ( !a )

● 陣列(array):
  請參閱「unity Array 陣列資料存取」這篇文章。

● 迴圈:
 ◎ for 迴圈
  for (int i=0; i<5; i++) { print(i); }
  說明:i 的啟始值為 0, i 小於 5 就繼續跑迴圈, i 每次加 1
     結果會依序輸出 0、1、2、3、4

 ◎ while 迴圈
  int x = 0;
  while (x < 3) {  x++; print(x);  } // 結果會依序輸出 1、2、3



● 函數(function):
 ◎ 基本語法
  void test(){ } // 宣告一個名稱為 test 的函數(前面加 void 代表沒有回傳值)
  test(); // 呼叫函數 test
  函數不會主動執行,被呼叫時才會執行。

 ◎ 呼叫加傳值
  void test( int a, string b ){ } // 括號內的兩個參數,用來接收傳過來的值(資料類型要對應)
  test( 7, "hello" ); // 呼叫函數,且傳兩個值(引數)過去

 ◎ 回傳值
  int test(){ // 宣告函數時前面加 int,代表會回傳整數
    return 123; // 回傳整數 123 (return 必需加在函數的最後)
  }
  int c = test(); // 呼叫函數,且宣告一個變數 c 以儲存回傳值(結果 c 為 123)
 ※ 若要多個回傳值,請參閱「呼叫函數返回多個回傳值」這篇文章。

 ◎ 傳址呼叫
  void myTest( ref int a ){ a = 12; }
  int a = 5;
  myTest ( ref a );
  print ( a ); // 結果 a 為 12。 引數和參數前面加 ref,代表傳址而非傳值。

● 類別(class)與物件(object):
 ◎ 宣告類別
  新增一個名為 myCharacter 的 script,內容如下:
  public class myCharacter {  public int _hp;  } // 例如帶有 hp 值的角色藍圖

 ◎ 建立物件
  在另一個 script 輸入: 
  myCharacter npc = new myCharacter();
  npc._hp = 90; // 設定 npc 物件的 hp 值
  ※ 若要進一步了解,請參閱「封裝(Encapsulation)與資料存取」這篇文章。

google雲端硬碟共用轉址



建議延伸閱讀:
>> Unity Script 常用語法教學(unity課程入門學習筆記)
>> Unity Android 發佈(輸出apk檔)設定及手機安裝教學



留言回應
※ 您必需先登入,才能填寫送出。