我是學生,我學習Unity3D引擎。我從事小2D遊戲開始。spawer的遊戲邏輯
我需要一些遊戲邏輯的幫助。具體如何合理地在4列中生成遊戲對象。在這個遊戲中,我產生了從屏幕頂部掉下來的遊戲對象。我計算了4個覆蓋屏幕的列。我在這4列中隨機產生遊戲對象。但是玩遊戲並不好。我需要一個建議如何做得更好。
我的想法是在行中產生一個或多個遊戲對象併合理旋轉列。我已經在行中產生了對象。但是如何爲開關列創建邏輯?像開關(現爲第一列,現在第三,現在第一和第四等)的東西
還有就是我的產卵方法:
// Use this for initialization
void Start()
{
// width of one colums
widthColum = ScreenCalc.DivideScreenInColums(colums);
...
}
public void StartSpawn()
{
spawn = StartCoroutine(Spawn());
}
IEnumerator Spawn()
{
yield return new WaitForSeconds(1.5f);
time = GameController.instance.time;
while (true)
{
// Random select from prefabs
GameObject geometryObject = spawnObjects[Random.Range(0, spawnObjects.Length)];
// X is middle of random picked columns
float x = ScreenCalc.GenerateColumPos(geometryObject, colums);
Vector3 spawnPosition = new Vector3(x, transform.position.y, 0.0f);
Quaternion spawnRotation = Quaternion.identity;
// Random object in row, will be spawned in one column
int rnd = Random.Range(1, 6);
// Spawn random count game object in one row
for (int i = 0; i < rnd; i++)
{
GameObject temp = Instantiate(geometryObject, spawnPosition, spawnRotation);
// Get Sprite render
SpriteRenderer sr = temp.GetComponent<SpriteRenderer>();
// Change color of game object
sr.color = colors[Random.Range(0, colors.Length)];
// Get script for falling down
FallingDown fl = temp.GetComponent<FallingDown>();
// Increase fall
fl.fallSpeed += 0.1f;
// Wait between spawns
yield return new WaitForSeconds(Random.Range(0.35f, 1.0f));
}
yield return new WaitForSeconds(1.0f);
}
我試圖做更多菌種的方法,每列和隨機生成的等待時間。但是我的邏輯很糟糕,因爲太多的對象被生成或者太低,並且相互碰撞一列。
這是我的想法的圖片。
上,您可以看到屏幕分成4列的照片,每列產卵位置。我需要幫助遊戲邏輯如何隨機切換對象的產生。
例如在第一列產生3行對象。然後在第二列產生一個對象。然後在第2列產生5個對象,同時在第4列產生2個對象。
我不知道如何更好地解釋它。我很抱歉我的英語。
我想你要完成將有助於增加什麼圖片:
也可以爲4列,如啓動4個協同程序。 – ryeMoss
你'//增加秋天'的代碼實際上並沒有做很多。因爲它將新spawened對象*的下降速度設置爲0.1一次,所以它再也不會再被觸摸了,因爲下一次這條線被執行時它會在* new *對象上。 – Draco18s