のは、これはあなたがそれをに加えられた変更に基づいて変更することができますカップルの方法がありますあなたのオブジェクト
GameObject[,] objects = new GameObject[LENGTH, WIDTH];
for(int i = 0; i < LENGTH; i++){
for(int j = 0; j < WIDTH; j++){
objects[i, j] = (GameObject)Instantiate(Prefab);
//Set position and do other initialization stuff here
}
}
をインスタンス化する方法であるとしましょうマトリックス。あなたは、マトリックスに変更を加えるだけで、直接オブジェクトのスプライト変更するたび
1)
:このスプライト1とsprite0で
matrix[1,2] = 1;
objects[1,2].getComponent<SpriteRenderer>().sprite = sprite1;
matrix[2,3] = 0;
objects[2,3].getComponent<SpriteRenderer>().sprite = sprite0;
はおそらく、パブリック変数として宣言することで、インスペクタを介して設定されますコード内。
2)あなただけ行列の視覚的な表現を更新したい時はいつでも、この更新機能を持つ整数配列
void update(){
for(int i = 0; i < LENGTH; i++){
for(int j = 0; j < LENGTH; j++){
switch(matrix[i, j]){
case 0:
objects[i, j].getComponent<SpriteRenderer>().sprite = sprite0;
break;
case 1:
objects[i, j].getComponent<SpriteRenderer>().sprite = sprite1;
break;
case 2:
objects[i, j].getComponent<SpriteRenderer>().sprite = sprite2;
break;
}
}
}
}
に基づいてゲームオブジェクトの配列を視覚的に表現を変更します更新機能を作りますそれを実行します。コードを書いた方法は、行列配列とオブジェクト配列が公開されているかどうかに依存します。あなたは両方をパラメータとして取ることでこれを回避することができます。
また、前述したように、コードでpublic変数として宣言することで、スプライト0、スプライト1、スプライト2をインスペクタで設定することもできます。
これは魅力的です。 – Willems
助けてくれてうれしいです:P – Bhaskar