-
-
Save todorok1/462103eb0c5674ea1bc59ce598abc807 to your computer and use it in GitHub Desktop.
地面の上にブロック崩しのブロックを並べて配置するサンプル
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
/// <Summary> | |
/// Prefabのオブジェクトを並べるサンプルスクリプトです。 | |
/// </Summary> | |
public class PrefabPlaceSample : MonoBehaviour | |
{ | |
// オブジェクトを生成する元となるPrefabへの参照を保持します。 | |
public GameObject prefabObj; | |
// 生成したオブジェクトの親オブジェクトへの参照を保持します。 | |
public Transform parentTran; | |
// マテリアルを保持します。 | |
public Material matCyan; | |
public Material matMagenta; | |
public Material matYellow; | |
void Start() | |
{ | |
CreateBlockObject(); | |
} | |
/// <Summary> | |
/// Prefabからブロックとして使うオブジェクトを生成します。 | |
/// </Summary> | |
void CreateBlockObject() | |
{ | |
int row = 10; | |
int column = 20; | |
float xOffset = 1.5f; | |
float zOffset = 1.5f; | |
for (int j = 0; j < row; j++) | |
{ | |
for (int i = 0; i < column; i++) | |
{ | |
// ゲームオブジェクトを生成します。 | |
GameObject obj = Instantiate(prefabObj, Vector3.zero, Quaternion.identity); | |
// ゲームオブジェクトの親オブジェクトを設定します。 | |
obj.transform.SetParent(parentTran); | |
// ゲームオブジェクトの位置を設定します。 | |
float xPos = xOffset * i; | |
float zPos = zOffset * j; | |
obj.transform.localPosition = new Vector3(xPos, 0.5f, zPos); | |
// マテリアルをランダムで設定します。 | |
int materialId = Random.Range(0, 3); | |
Material mat = matCyan; | |
switch (materialId) | |
{ | |
case 1: | |
mat = matMagenta; | |
break; | |
case 2: | |
mat = matYellow; | |
break; | |
} | |
obj.GetComponent<MeshRenderer>().material = mat; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment