Unity — 以一個中心點創建一個格子

更新於 發佈於 閱讀時間約 3 分鐘

緣由

生成一個格子是一件十分之簡單的事,但我不知道為甚麼每一次重新寫的時候,都會忘記如何寫。所以我在這裏記錄一下。

代碼

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);
}
}
}

結尾

這個真的不難就不解析了。

留言
avatar-img
留言分享你的想法!
avatar-img
夏葉
0會員
7內容數
這裏分享我遊戲開發的記錄,亦會分享開發的小技巧。
夏葉的其他內容
2024/01/19
這篇文章深入探討如何利用 Lerp 來實現物體的移動,並介紹透過 Slerp 來獲得更流暢的移動效果。以簡化移動的實現過程。文章將比較 Update 和 IEnumerator 兩種方案,並指導讀者如何設定速度、加速度及移動時間,提供全面的學習資源以助於更佳理解,尤其是對於遊戲開發者。
Thumbnail
2024/01/19
這篇文章深入探討如何利用 Lerp 來實現物體的移動,並介紹透過 Slerp 來獲得更流暢的移動效果。以簡化移動的實現過程。文章將比較 Update 和 IEnumerator 兩種方案,並指導讀者如何設定速度、加速度及移動時間,提供全面的學習資源以助於更佳理解,尤其是對於遊戲開發者。
Thumbnail
2023/11/26
從個連結中下載這個資料夾 https://github.com/h8man/NavMeshPlus 打開剛下載的資料夾,然後將一個名 NavMeshComponents 的資料夾放入你的 Unity 中。 創建一個 Square,作為平面,新增一個名為 Navigation Modifier 的
Thumbnail
2023/11/26
從個連結中下載這個資料夾 https://github.com/h8man/NavMeshPlus 打開剛下載的資料夾,然後將一個名 NavMeshComponents 的資料夾放入你的 Unity 中。 創建一個 Square,作為平面,新增一個名為 Navigation Modifier 的
Thumbnail
2023/11/19
Text Mesh Pro 是 Unity 內自置的 UI 文字系統。如果你已經用了 Unity 很多年的人會好奇,它和 Text 有甚麼的分別。總括來講 Text Mesh Pro 更加的靈活和可以做更多不同的變化。 Sprite Asset Sprite Asset 以簡單來說是 emoji
Thumbnail
2023/11/19
Text Mesh Pro 是 Unity 內自置的 UI 文字系統。如果你已經用了 Unity 很多年的人會好奇,它和 Text 有甚麼的分別。總括來講 Text Mesh Pro 更加的靈活和可以做更多不同的變化。 Sprite Asset Sprite Asset 以簡單來說是 emoji
Thumbnail
看更多