付録C:C#の基本構文
PythonとC#の対応表
Section titled “PythonとC#の対応表”Pythonでこう書いていたものが、C#ではどうなるかの一覧です。
| 項目 | Python | C Sharp (Unity) |
|---|---|---|
| 文の終わり | 改行 | セミコロン(;) |
| ブロックの表現 | インデント(字下げ) | 波括弧 { } |
| コメント | # これはコメント |
// これはコメント |
| 複数行コメント | ''' 複数行 ''' |
/* 複数行 */ |
| 画面出力 | print("Hello") |
Debug.Log("Hello"); |
| 変数宣言 | x = 10 |
int x = 10; |
| 文字列 | name = "太郎" |
string name = "太郎"; |
| 小数 | pi = 3.14 |
float pi = 3.14f; |
| 真偽値 | is_ok = True |
bool isOk = true; |
| 条件式の括弧 | if x > 5: |
if (x > 5) |
| 関数定義 | def func(): |
void Func() |
| プログラムの開始 | if __name__ == "__main__": |
void Start() |
| 繰り返し実行 | while True:ループ |
void Update() |
| 実行方法 | python ファイル名.py |
Unityの再生ボタン(▶) |
| 停止方法 | Ctrl+C | 停止ボタン(■) |
とくに気をつける違い
Section titled “とくに気をつける違い”- 大文字小文字を区別:
Stringとstringは別物 - 型は厳密:一度決めた型はあとから変えられない
nullという値がある:「何もない」を表す特別な値- 配列は長さが固定:Pythonのリストのように後から増やせない
| 型名 | 説明 | 例 | Pythonでは |
|---|---|---|---|
int |
整数 | 10, -5, 0 |
整数そのまま |
float |
小数(単精度) | 3.14f, -0.5f |
小数そのまま |
string |
文字列 | "Hello", "Unity" |
文字列そのまま |
bool |
真偽値 | true, false |
True, False |
double |
小数(倍精度) | 3.14159265 |
小数そのまま |
char |
1文字 | 'A', 'あ' |
文字列の1文字目 |
doubleはfloatの倍のビット数を使うので、より細かい小数まで扱えます
(double=2倍、が名前の由来)。Unityではfloatを使うのが基本です。
// 基本的な変数の型int number = 10; // 整数float speed = 5.5f; // 小数(fを付ける)string name = "Unity"; // 文字列bool isActive = true; // 真偽値(true/false)
// Unity特有の型Vector2 position = new Vector2(1, 2); // 2D座標Vector3 position3D = new Vector3(1, 2, 3); // 3D座標Color myColor = Color.red; // 色// if文の基本if (score > 100){ Debug.Log("ハイスコア!");}else if (score > 50){ Debug.Log("まあまあ");}else{ Debug.Log("がんばろう");}
// switch文switch (level){ case 1: Debug.Log("初級"); break; case 2: Debug.Log("中級"); break; default: Debug.Log("上級"); break;}// for文(回数指定)for (int i = 0; i < 10; i++){ Debug.Log("カウント: " + i);}
// while文(条件が真の間)while (isRunning){ // ゲームが実行中の処理 UpdateGame();}
// foreach文(配列やリストの要素を順番に処理)foreach (GameObject enemy in enemies){ enemy.SetActive(false);}メソッド(関数)
Section titled “メソッド(関数)”// 基本的なメソッドvoid SayHello(){ Debug.Log("こんにちは!");}
// 引数があるメソッドvoid AddScore(int points){ score += points; Debug.Log("スコア: " + score);}
// 戻り値があるメソッドfloat CalculateDamage(float attack, float defense){ return attack - defense;}困ったときは
Section titled “困ったときは”エラーが出たときの対処法は付録E:困ったときはにまとめてあります。