- Home /
Programaticly Spawn Powerups?
How can I programaticly spawn powerups? I need an example in c# of how to do this. My complete code is as follows:
using UnityEngine;
using System.Collections;
using System.Timers;
public class Random_Powerup_Generation : MonoBehaviour
{
private static Timer PowerupTimer;
private int newPower;
// Use this for initialization
void Start ()
{
//randomize timer to int between 15000 and 45000
double powerupInterval = Random.Range(15000,45000);
//create timer
PowerupTimer = new Timer(powerupInterval);
//create the event for the timer
PowerupTimer.Elapsed += new ElapsedEventHandler (CreateNewPowerup);
//start timer
PowerupTimer.Start();
//Make sure it resets
PowerupTimer.AutoReset = true;
}
// Update is called once per frame
void Update ()
{
//random powerup
newPower = 0; //Random.Range(0,2);
}
void CreateNewPowerup(object source, ElapsedEventArgs e)
{
//create new powerup
switch (newPower)
{
case 0:
break;
case 1:
break;
case 2:
break;
}
}
}
My powerups are in prefabs, and an example of a name is pre_HealthPowerup.
Answer by KMKxJOEY1 · Apr 14, 2014 at 01:13 AM
If your powerups are GameObjects, a simple Instantiate should work just fine. In this code:
Instantiate(powerup, spawnPos, spawnRot);
powerup is the GameObject to spawn (store it in a variable of your script) spawnPos is the Vector3 position to spawn the powerup at and spawnRot is the rotation you want the powerup to have when it is spawned
A side note, this requires that you create public variables for each powerup, then drop your prefab onto the variable within the editor.
If this is not what you want then something else you might want to look into is Resources.Load
Your answer
Follow this Question
Related Questions
Spawning objects based on distance traveled? 1 Answer
Distribute terrain in zones 3 Answers
Multiple Cars not working 1 Answer
Instantiate ground/enemies 1 Answer
instantiating vertically 2 Answers