UnityC#の質問です!
プログラミング初心者です。
ブロックを5*9で並べるスクリプトなのですが。
using UnityEngine;
using System.Collections;
public class SceneControl : MonoBehaviour {
public static int BLOCK_NUM_X = 9;
public static int BLOCK_NUM_Y = 5;
public GameObject BlockPrefab = null;
public BlockControl[,] blocks;
void Start()
{
// ブロックを生成、配置する.
this.blocks = new BlockControl[BLOCK_NUM_X, BLOCK_NUM_Y];
int color_index = 0;
for(int y = 0;y < BLOCK_NUM_Y;y++) {
for(int x = 0;x < BLOCK_NUM_X;x++) {
//BlockPrefabをGameobjectにキャストする
GameObject game_object = Instantiate(this.BlockPrefab) as GameObject;
BlockControl block = game_object.GetComponent<BlockControl>();
this.blocks[x, y] = block;
//
Vector3 position = block.transform.position;
position.x = -(BLOCK_NUM_X/2.0f - 0.5f) + x;
position.y = -0.5f - y;
block.transform.position = position;
block.SetColor((BlockControl.COLOR)color_index);
//
color_index = Random.Range(0, (int)BlockControl.COLOR.NORMAL_COLOR_NUM);
}
}
//
}
}
で、
Vector3 position = block.transform.position;
position.x = -(BLOCK_NUM_X/2.0f - 0.5f) + x;
position.y = -0.5f - y;
block.transform.position = position;
の部分についてなのですが、Vector3 position = block.transform.position;で参照を渡しているので、block.transform.position = position;が必要ないと思い、コメントアウトした所、同じ位置にブロックが生成されてしまいました。
参照を渡していいるため
position.x = -(BLOCK_NUM_X/2.0f - 0.5f) + x;
position.y = -0.5f - y;
の部分で、block.transform.positionの中身が書き換わっていると思ったのですが違うのですか??
お礼
ブルデーなんかはメガネかけてますがそれでも見えるんですねー! 確かに、シグナルまでに邪魔になるものはないですね。 回答ありがとうございました。