首页 > 解决方案 > 在生成点实例化对象

问题描述

嘿伙计们,我是团结的初学者。我在实例化预制件时遇到问题。我的代码中的问题是在我单击任务面板中的接受按钮或任务已被接受后,对象将产生太多(无休止的循环,我不知道叫什么)。我成功地将对象生成到它们的对应点。如何一次生成多个预制件?我不确定是否要在更新方法上调用它。

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;

 public class SpawnFlower : MonoBehaviour {

    public GameObject flowers;
    public Transform[] spawnPoints;
    public float spawnTime = 1.5f;

    public int maxCount;

    void Update() {
        //InvokeRepeating ("SpawnFlowers", spawnTime, spawnTime);
        if(QuestManager.questManager.RequestAcceptedQuest(1)) {
            SpawnFlowers ();
        }
    }

    public void SpawnFlowers() {
        List<Transform> freeSpawnPoints = new List<Transform>(spawnPoints);

        for (int i = 0; i < maxCount; i++) {
            if (freeSpawnPoints.Count <= 0)
                return;
            int spawnIndex = Random.Range (0, freeSpawnPoints.Count);
            Transform pos = freeSpawnPoints [spawnIndex];
            freeSpawnPoints.RemoveAt (spawnIndex);
            Instantiate (flowers, pos.position, pos.rotation);
        }
    }
}

标签: c#unity3d

解决方案


推荐阅读