我在Unity中使用了Invoke Repeating方法,该方法应该每两秒钟生成一个多维数据集,但是一旦经过一秒钟,就会生成许多多维数据集。我该如何解决这个错误?
public class BallsGenerator : MonoBehaviour
{
public GameObject cube;
// Update is called once per frame
void Update()
{
InvokeRepeating("generateCube", 1.0f, 2.0f);
}
private void generateCube()
{
Vector3 genPosition = new Vector3(Random.Range(-111, 823), 728, 378);
Quaternion startRotation = new Quaternion(Random.Range(-180, 180), Random.Range(-180, 180), Random.Range(-180, 180), 0);
Instantiate(cube, genPosition, startRotation);
}
}
您在InvokeRepeating
中开始新的Update
每帧!
因此,一旦延迟第一次通过,您将获得每帧一个对象;)
您应该只这样做一次例如
private void Start()
{
InvokeRepeating("generateCube", 1.0f, 2.0f);
}
private void generateCube()
{
Vector3 genPosition = new Vector3(Random.Range(-111, 823), 728, 378);
Quaternion startRotation = new Quaternion(Random.Range(-180, 180), Random.Range(-180, 180), Random.Range(-180, 180), 0);
Instantiate(cube, genPosition, startRotation);
}