Edited at

Unity5の教科書 Chapter2後半を学習してみた(配列、関数、クラス)

More than 1 year has passed since last update.


初めに

Unity5の教科書 2章の後半を学習してみました。

自分なりの解釈を加えてアウトプットしています。

Unity初心者の為、指摘などあれば頂けると嬉しいでっす。


配列


  • 使いどころ

複数のプレイヤーの点数を管理する場合、1000個の変数をすべて宣言するのは大変であるが、配列を使えば1000でも10000でも作れる。


  • 配列の宣言

int[] points = new int[10];                      

 int型のpointsを宣言

 new int[10] でint型の箱を10つ作成


  • 配列の順番配列は0から作成される

  points[0] 1番目

  points[1] 2番目

  points[2] 3番目

   ・

   ・

  points[9] 10番目


  • コード例


 *int型のpointsを5つ作成後、値を入れる。

  int[] points = new int[5];  

points[0] = 10;
points[1] = 20;
points[2] = 2;
points[3] = 6;
points[4] = 30;

 *変数の宣言と同時に値を入れる

int[] points = {10, 20, 2, 6, 30}; 

同時に沢山の変数を宣言できるのが、配列と理解しました。

更にUnity5の教科書では配列の使い方の例など分かりやすく説明していました。


関数


  • 使いどころ

 一連の処理をまとめたい時などに使用する

    → 攻撃処理

 処理 → 防御処理      
    → 逃げる処理

攻撃の時は攻撃処理を呼び出して、防御の時は防御処理を呼びだすなど


  • 引数、返り値

 引数は複数渡せる

 返り値はひとつだけ

関数を呼び出して使用する方法や引数を渡して関数で計算をして

返り値として値を戻す方法が使い方としてあります。


  • コード例


*引数も返り値も無い関数

void Hey(){

Debug.Log("I'm tanaka");
}

void start(){
Hey();
}

出力結果
I'm tanaka

voidは返り値なし

Heyは関数名、()は引数なし。

*引数のある関数

void Call(string name){

Debug.Log("Hello" + name);
}

void start(){
Call("tanaka");
}

出力結果
Hello tanaka

voidは返り値なし

callは関数名、(string name)はstr型の変数name

*引数と返り値のある関数

int Add(int a, int b){

int sum = a + b;
return sum;
}

void start(){
int answer;
answer = Add(10, 20);
Debug.Log(answer);
}

出力結果
30

Add関数に引数を2つ渡しています。

「10をint a」、「20をint b」に値を渡しています。

関数内で計算した結果sumを返り値として返します。

結果 answer = sumとして計算された結果がAdd(10, 20)を置換されるイメージになります。


クラス


  • 使いどころ

 関数と変数をまとめるときに使う。

 関係のある変数と関数をひとまとまりにしてスクリプト管理が楽になる。


  • クラスの使い方

 1.作成したクラスを、intやstrの様に型として使用することができる。

 2.tanakaクラスを作成した場合、tanaka型として使用が可能になります。

tanaka mytanaka;    この段階では空の箱を作っただけの状態

通常の変数で数値などの値を代入するように、tanaka型のmytanakaにも実体を代入する必要があり実体の事を「インスタンス」と呼びます。

 *インスタンス作成

tanaka mytanaka = new tanaka();


  • アクセス修飾子

 public アクセス可能

 private アクセス不可能

関数内の変数や関数に対してアクセス可能かアクセス不可能か決めるために使用します。

アクセス修飾子
アクセス可能なクラス

Public
全てのクラスからアクセスが可能

protected
同じクラスとそのサブクラスからアクセス可能

private
同じクラスからのみアクセス可能


Vectorクラス


  • 使いどころ

 キャラクターを動かす時などに使用する。

 加速度、力、移動速度などの数値として使う事も可能。

 2DではVector2を使用する。

 3DではVector3を使用する。


  • コード例


Vector2 クラス名 = new Vector2(x軸, y軸);

Void start(){

Vector2 tanaka = new Vector2(10.0f, 3.0f);
}

Vector3 クラス名 = new Vector3(x軸, y軸, z軸);

Void start(){

Vector3 tanaka = new Vector3(10.0f, 3.0f, 1.0f);
}