Unity,为什么会产生这么多预制件



代码在这里:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpawnManager : MonoBehaviour
{
public GameObject[] animalprefabs;
public float spawninterval = 2.5f;
public float spawnDelay = 2.0f;
// Start is called before the first frame update
void Start()
{

}
// Update is called once per frame
void Update()
{
InvokeRepeating("spawnRandomAnimal",spawnDelay, spawninterval);

}
void spawnRandomAnimal()
{
int animalIndex = Random.Range(0, animalprefabs.Length);
int SpawnIndex = 20;
Vector3 spawnPosition = new Vector3(Random.Range(-SpawnIndex, SpawnIndex), 0, 25);
Instantiate(animalprefabs[animalIndex], spawnPosition ,animalprefabs[animalIndex].transform.rotation);
}
}

我想在某个时间间隔后随机实例化预制件,但不知何故,大量预制件正在生成。我想在该时间间隔后的随机位置实例化一个预制件。。。有人帮

每次调用Update()时,都会重新调用invokeRepeating。每次它被调用时,都会添加另一个任务来重复。

移动它开始解决您的问题。

void Start()
{
InvokeRepeating("spawnRandomAnimal",spawnDelay, spawninterval);
}

您在update((中使用invokerepeating((函数。这就是为什么生成了太多预制件。从update((中删除invokerepating((,然后在start((或onenable((中尝试。

相关内容

  • 没有找到相关文章

最新更新