私は統一のためにC#を学んでいて、いくつかのポインタを使用することができます。どのように制限するCreateCell C#手続きグリッド生成単体
私はcatlikecoding hex mapチュートリアルに従っていますが、私は独自の方法でグリッドを変更しました。
http://catlikecoding.com/unity/tutorials/hex-map-1/
私の目標は、手続き7 * 7グリッドからスタートの正方形のピラミッドを作成することです。私は、彼らが次の式
x + y > n - 1 where n = grid size (for example (6,1) or (5,6)
に会うときの座標(x、y)が作成されていないと、細胞は、私が持っているように、私はCreateCell
に制限を置くにはどうすればよい
機能をループプレハブ平面を使用しています地面の下の望ましくない面を持つ平面の菱形を作る限り、得られた。
スクリプトは次のとおりです。
パブリッククラスHexGrid:MonoBehaviour {
public int width = 7;
public int height = 7;
public int length = 1;
public SquareCell cellPrefab;
public Text cellLabelPrefab;
SquareCell[] cells;
Canvas gridCanvas;
void Awake() {
gridCanvas = GetComponentInChildren<Canvas>();
cells = new SquareCell[height * width * length];
for (int z = 0 ; z < height; z++) {
for (int x = 0; x < width; x++) {
for (int y = 0; y < length; y++)
CreateCell(x, z, y);
}
}
}
void CreateCell(int x, int z, int y) {
Vector3 position;
position.x = x * 10f ;
position.y = ((y + 1) - (x + z)) * 10f + 60f;
position.z = z * 10f ;
Cell cell = Instantiate<Cell>(cellPrefab);
cell.transform.SetParent(transform, false);
cell.transform.localPosition = position;
Text label = Instantiate<Text>(cellLabelPrefab);
label.rectTransform.SetParent(gridCanvas.transform, false);
label.rectTransform.anchoredPosition =
new Vector2(position.x, position.z);
label.text = x.ToString() + "\n" + z.ToString();
}
}
_public int tempY; _ _int 'TempY = height'_と_'if(x + y
Freddo1083