在Unity中实例化

时间:2017-08-04 16:16:48

标签: c# unity3d

基本上我做了一个非常简单的游戏,有一些块掉落,我有基本的C#知识,但我不能自己弄清楚我会怎么做。基本上我在中间,左边和右边放一个3块,你必须避免。我已经制作了一个实例化脚本,可以在1到4秒内随机生成每个生成位置,但有时它会不小心产生所有3个!我只需要检查一下是否已经在左侧和右侧生成了2个,然后不在中间生成一个,反之亦然。你们能帮助我吗?谢谢!顺便说一下,这是我当前的spawn脚本。

android:layout_toEndOf

编辑:

     public GameObject spawn;
     private float spawnTime;

     void Start()
     {  
         spawnTime = Random.Range(1, 5);
         Invoke("Spawn", spawnTime); 
     }

     void Spawn()
     {
         spawnTime = Random.Range(1, 5);
         Instantiate(spawn, transform.position, Quaternion.identity);
         Invoke("Spawn", spawnTime);   
     } 

public class randomSpawner:MonoBehaviour {

using UnityEngine;

}

1 个答案:

答案 0 :(得分:0)

您可以在块上添加一个标记,例如Block,然后在实例化之前执行GameObject.FindGameObjectsWithTag("Block");,这将返回一个数组,然后您只需验证该数组的长度。

void Spawn()
{
    if(GameObject.FindGameObjectsWithTag("Block").Length < 2){
        Instantiate(spawn, transform.position, Quaternion.identity);
    }
    spawnTime = Random.Range(1, 5);
    Invoke("Spawn", spawnTime);   
} 

您还可以拥有一个static变量,在生成块时递增,在销毁块时递减。