2021-11-01 16:00:38 +00:00

46 lines
1.3 KiB
C#

using UnityEngine;
using System.Collections;
[AddComponentMenu("Playground/Gameplay/Object Creator Area")]
[RequireComponent(typeof(BoxCollider2D))]
public class ObjectCreatorArea : MonoBehaviour
{
[Header("Object creation")]
// The object to spawn
// WARNING: take if from the Project panel, NOT the Scene/Hierarchy!
public GameObject prefabToSpawn;
public GameObject ItemOne;
[Header("Other options")]
// Configure the spawning pattern
public float spawnInterval = 1;
private BoxCollider2D boxCollider2D;
void Start ()
{
boxCollider2D = GetComponent<BoxCollider2D>();
StartCoroutine(SpawnObject());
}
// This will spawn an object, and then wait some time, then spawn another...
IEnumerator SpawnObject ()
{
while(true)
{
// Create some random numbers
float randomX = Random.Range (-boxCollider2D.size.x, boxCollider2D.size.x) *.5f;
float randomY = Random.Range (-boxCollider2D.size.y, boxCollider2D.size.y) *.5f;
// Generate the new object
GameObject newObject = Instantiate<GameObject>(prefabToSpawn);
newObject.transform.position = new Vector2(randomX + this.transform.position.x, randomY + this.transform.position.y);
// Wait for some time before spawning another object
yield return new WaitForSeconds(spawnInterval);
}
}
}