生成一個格子是一件十分之簡單的事,但我不知道為甚麼每一次重新寫的時候,都會忘記如何寫。所以我在這裏記錄一下。
public float num;
public GameObject currentGameObject;
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
Generate();
}
//生成格子
void Generate()
{
//判斷單數或雙數
switch (num % 2)
{
case 0:
Even();
break;
case 1:
Singular();
break;
}
}
//單數
void Singular()
{
int max = (int)num / 2;
for (int i = -max; i < max + 1; i++)
{
Vector3 p = transform.position +
new Vector3(i * (gameObject.transform.localScale.x + 0.5f), 0);
Instantiate(currentGameObject, p, Quaternion.identity);
}
}
//雙數
void Even()
{
float length = 0.5f + gameObject.transform.localScale.x;
for (int i = 0; i < num / 2; i++)
{
for (int j = 0; j <= 1; j++)
{
float xPos = i == 0 ? length / 2 : length * (i + 0.5f);
float dir = j == 0 ? 1 : -1;
Vector3 p = new Vector3(xPos * dir, 0);
Instantiate(currentGameObject, p, Quaternion.identity);
}
}
}
這個真的不難就不解析了。