Unity2017 ~C#の基礎~

基礎の基礎

 

ここでは、本当に基礎の基礎から。

 

プログラミングの学習を進めていると、だんだん、難しいモノが、出てきて挫けそうになります。

そんな時は、基礎を見返してみると、頭の中がいったん整理されて、スムーズに理解できたりします。

 

まずは、お馴染みのデフォルトのスクリプト。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

 

個別に、説明しますと、

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

 

using の名の通り、Unity が用意してくれている機能を使うことを宣言しています。

System.Collection は、データを格納する型を提供してくれます。(この辺は、よく分かりません。)

 

UnityEngine は、Unity を動かすために必要な機能を提供してくれます。

 

public class Test : MonoBehaviour {}

 

MonoBehaviour はすべてのスクリプトから派生するベースクラスです。
Javascript を使用するときすべてのスクリプトは自働的に MonoBehaviour から派生します。 C# または Boo を使用するときは明示的に MonoBehaviour から派生する必要があります。

 

必ずしも、MonoBehaviour を継承しなくてはいけないのか?

実は、そんなことは無いらしいのですが、素直に、継承しておいた方が良さそうです。

 

続いて、

 

// Use this for initialization
	void Start () {
		
	}

 

// の以下の Use this for initialization は、コメントなのですが、一応、直訳すると、『初期化のためにこれを使用します。』という、意味らしいです。

 

確かに、Initial() なんていう、初期化クラスをよく使ったりします。

 

それは、また、別の話ですが、

 

void Start () {
		
	}

 

は、Unity において、ゲームが開始して、一番初めに一度だけ呼び出される処理と理解しておけばとりあえず、問題はないかと思います。

 

次の、

 

// Update is called once per frame
	void Update () {
		
	}

 

は、同様に // 以下はコメントなのですが、『1フレーム毎に1度だけ呼び出される処理』と解釈しておいて良いと思います。

 

では、実際にスクリプトを書いて、Unityのエディタで実行してみましょう。

 

お決まりの、Hello, World を console に表示します。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

	// Use this for initialization
	void Start () {
        // Hello, Worldをコンソールビューに表示する。
        Debug.Log("Hello, World");
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

 

エディタ画面で、書いたC#のスクリプトを適当にMain Camera あたりにアタッチして、再生ボタンをクリックする。

 

 

コンソールをクリック。

 

 

見事、表示されました。

 

変数の宣言
C#においての型名の種類。

 

よく使うものだけでも覚えるのが大変そう。

 

でも、コードを書いているうちになんとなく、把握できるようになる・・・はず。

 

 
 
 型名  型の説明  数値の取りうる範囲
 int  整数型  -2,147,483,648 ~ 2,147,483,647
 float 浮動小数点型  -3.402823E+38 ~ -3.402823E
 double 倍精度浮動小数点型  -1.79769313486232E+308 ~ 1.79769313486232E+308
 bool ブール型  true または false
 char 文字型  テキストで使用される Unicode 記号
 string 文字列型  テキスト

 

変数の利用の例

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

    void Start()
    {
        int age;
        age = 30;
        Debug.Log(age);
    }
}

 

出力結果。

 

 

age という変数の型を int つまり、整数の型で宣言して、30 という値を代入しています。

 

 

| 変数に変数を代入 


スクリプトは、以下の通り。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

    void Start()
    {
        float height01 = 160.5f;
        float height02;
        height02 = height01;
        Debug.Log(height02);
    }
}

 

結果は、以下。

 

float height01 = 160.5f; は、変数の宣言と値の代入を行っており、これを変数の初期化と呼んでいます。

 

float型(浮動小数点型)の height01 という変数を 160.5f という値で初期化しています。

 

結果には、”160.5” という値が表示されています。

 

”f” は、表記されません。

 

しかし、スクリプトの方ではきちんと、”f” を付けないと、float型の変数に、double型の値を代入するのだと認識され、エラーになります。

 

 ”f” を絶対に忘れないようにしましょう。

 

| 変数に文字列を代入


 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

    void Start()
    {
        string name;
        name = "tatikawa";
        Debug.Log(name);
    }
}

 

上記のように、文字列を扱うのはstring型で、値は ” (ダブルクォーテーション)で囲います。

 

 

もちろん、1,2,3・・・ などの数字も文字列として代入はできますが、数値としては扱えないので、計算はできません。

 

なので、以下のようにすると、

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

    void Start()
    {
        string name;
        name = "12345";
        name += name;
        Debug.Log(name);
    }
}

 

結果は、24,690 ではなくて、

と、なります。

 

計算したい時には、数値を扱える型にしなくてはいけません。

 

型を変換する方法もあるのですが、まずは、基本的なルールを覚えてからの方が良いでしょう。

 

 

コメント

タイトルとURLをコピーしました