Nanashi-softプログラマ専用Unityでゲーム開発


◇Unityでゲーム開発 -C#の構造体-

●構造体の定義

struct 構造体名 {
    //変数郡
    //関数郡
}

これをnewして使用します
構造体名 変数名=new 構造体名();

例)
struct kouzoutai{
	private int a;	//外部からアクセスできない変数
	public int b;	//外部からアクセスできる変数

	public void set_a(int var){	//外部からアクセスできる関数
		a=var;
	}
	public int get_a(){	//外部からアクセスできる関数
		return a;
	}
}

kouzoutai hensu=new kouzoutai();
//hensu.a=10;		//private宣言なので,これはできません
hensu.set_a(10);	//aに10を代入
hensu.b=20;			//public宣言なのでできます

●new時に初期値を代入したい

構造体名と同一名称のメンバ関数を定義します
例)
struct kouzoutai {
	private int a;
	public int b;

	//コンストラクタ関数
	public kouzoutai(int hikisu1, int hikisu2){
		a=hikisu1;
		b=hikisu2;
	}
}

//new時に初期化引数をセットする
kouzoutai hensu=new kouzoutai(10, 20);

●構造体を配列にしたい

構造体の定義部分は同じです
//宣言時に構造体名の後ろに[]を記述する
kouzoutai[] hensu;
//生成したい個数を付けてnewする
hensu=new[100];
for(int i=0; i < hensu.Length; i++) {
	//配列1コずつnewする
	hensu[i]=new kouzoutai(0, 0);
}
めんどくさいようですが,この方法で覚えておくと,後々応用が利きます

●構造体のメンバ変数に可変長配列を使いたい

struct kouzoutai {
	private int a;
	public int b;
	public int[] c;	//メンバ変数に配列
}

kouzoutai hensu=new kouzoutai();
hensu.c=new int[16];	//配列を生成


TOPプログラマ専用Unityでゲーム開発