How to set a special prefab in a switch?
Hi Super noob here, I got lots of answers from this site before but I just cant seem to figure this out. I have a projectile set as a game object, a 2d sprite prefab, I declared is at a public gameobject and was able to drag a prefab to make it work, no problem. In special circumstances I want it to be another prefab. How do I set the game object: Projectile to the special prefab.
thank you for all your help.
switch (Convert.ToChar (valueOfTokens [1])) {
case '+':
genApples (float.Parse(numbers [temp]));
break;
case '-':
//set GameObject to new prefab and generate some apples.
Projectile = GameObject.Find("Projectile_Prefab 1") as GameObject;
genApples (float.Parse(numbers [temp]));
break;
default:
genApples (float.Parse(numbers [temp]));
break;
}
}
void genApples(float apples){
while (apples != 0) { //drop some apples
GameObject Goz = Instantiate (Projectile, ShootPt.transform.position, ShootPt.transform.rotation) as GameObject;
apples--;
}
What exactly are you trying to do? I don't understand.
I think you should learn the basics of the program$$anonymous$$g language you're using before trying to code...
Shouldn't the 'apples' float in genApples be an int?
Answer by ElijahShadbolt · Oct 12, 2016 at 10:59 PM
You can make multiple GameObject variables to store the prefabs, then select which one later in the code.
public class ExampleScript : MonoBehaviour
{
public GameObject ProjectilePrefab1; // set this
public GameObject ProjectilePrefab2; // set this
private GameObject Projectile; // this is assigned in the code
void Awake()
{
Projectile = ProjectilePrefab1;
}
// ... later on in your switch statement
Projectile = ProjectilePrefab2;
// ...
}
Or you can use an array. This would mean that in the Inspector you can assign as many prefabs as you want.
public class ExampleScript : MonoBehaviour
{
public GameObject Projectile;
public GameObject[] ProjectilePrefabs = new GameObject[2];
void Awake()
{
Projectile = ProjectilePrefabs[0]; // selects first prefab
}
// ... later on in your switch statement
Projectile = ProjectilePrefabs[1]; // selects second prefab
// ...
}
Your answer
Follow this Question
Related Questions
FormatException: Input string was not in the correct format 0 Answers
Errors With Game Over Script 1 Answer
What is wrong with my script? 0 Answers
Collision Detection Not Working (Unity 5.2.3) 5 Answers
How do I make a script wait X time? 1 Answer