2016-11-18 95 views
-2

我几乎已经准备好了我的游戏,我想为我的2D游戏创建无限数量的2D广场。但是,我使用的下列代码无法无限生成单个正方形。Unity - 无限生成问题

using UnityEngine; 
using System.Collections; 

public class Spawner : MonoBehaviour 
{ 
    private GameObject[] locationsToSpawn; 
    private float counter = 0; 
    [SerializeField] 
    string[] listOfPossibleTags; 
    [SerializeField] 
    GameObject[] objectToSpawn; 
    [SerializeField] 
    float timeBetweenSpawns = 3.0f; 

    void Start() 
    { 
     locationsToSpawn = GameObject.FindGameObjectsWithTag("SpawnLocation"); 
    } 
    void Update() 
    { 
     counter += Time.deltaTime; 
     if (counter > timeBetweenSpawns) 
     { 
      GameObject spawnedObject; 
      spawnedObject = Instantiate(objectToSpawn[Random.Range(0, objectToSpawn.Length)], locationsToSpawn[Random.Range(0, locationsToSpawn.Length)].transform.position, Quaternion.identity) as GameObject; 
      spawnedObject.gameObject.tag = listOfPossibleTags[Random.Range(0, listOfPossibleTags.Length)]; 
      counter = 0; 
     } 
    } 
} 

而且,我的比赛看起来如下image

所以,我能做些什么来创造广场落下无限多的?我非常接近完成比赛。

+0

您的代码以何种方式失败?哪些部分按预期运行,以及您正在观察的错误行为是什么?请提供更多细节,因为我们无法自行运行代码以找出答案。 – Serlite

+0

Serlite是正确的,您需要提供更多信息。代码看起来应该会产生游戏对象。不过,我猜测他们是在彼此之上产卵的。调试时,objectToSpawn.Length和locationsToSpawn.Length的值是多少? –

+0

我想在Unity上制作一个avoider游戏。当我在方形对象中插入spawner代码时。广场不会spa。。 –

回答

0

根据您在评论中提供的信息,您将脚本放在场景中不存在的游戏对象上。如果在游戏中没有你的游戏对象的实例,你的脚本将永远不会运行。把脚本放在其他有意义的东西上,它会运行。

当试图找出你的代码有什么问题时使用调试器。你将能够更容易地发现你的问题!