- Home /
Question by
ritual · Sep 26, 2013 at 02:39 PM ·
instantiate prefab
instantiate prefab on its on class
Hey Everyone, Hopefully someone can help me out. im pretty stuck ....
Overview of game - your airplane shoots other airplanes... each level has a different amount of planes(prefabs) the max will be 6 or so.
I'm stuck on a way to instantiate the planes. I have a class (plane) that has all the functions for the plane. now on the (gameplay) class I instantiate a list of (plane) type for the amount of planes I want. now I cant get each individual (plane) class to instantiate a prefab.. so say I have a list of 10 (plane) type each plane class should instantiate a prefab.
I create an empty gameobject attached the (planes) script and the prefab. I can get this prefab the instantiate just fine but only this one.
plane class
public GameObject playerCharacter;
private GameObject prefab;
public Vector3 position;
public int health;
public int index;
public bool instantiate = false;
public Players(Vector2 planePosition, int health)
{
Reset(planePosition, health);
}
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
if (instantiate)
prefab = Instantiate (playerCharacter, position, Quaternion.identity) as GameObject;
}
public void InstantiateAvatar()
{
prefab = Instantiate (playerCharacter, position, Quaternion.identity) as GameObject;
}
public void Reset(Vector2 planePosition, int health)
{
this.position = planePosition;
this.health = health;
gameplay class
//reference to XMLloading script
XMLloading loadXML;
//temp player
public Players tempPlayer;
//list of player
List<Players> players = new List<Players>();
// Use this for initialization
void Start ()
{
//load XML
loadXMLData();
// Create all game components
CreateGameComponents();
}
void CreateGameComponents ()
{
//create plane avatars
for (int i = 0; i < loadXML.players.Count; i++)
{
Vector2 position = new Vector2(loadXML.players[i].posX, loadXML.players[i].posY);
int health = loadXML.players[i].health;
tempPlayer = new Players(position, health);
tempPlayer.index = i;
players.Add (tempPlayer);
foreach (Players index in players)
{index.instantiate = true;
Debug.Log ("player# " + index.index);
Debug.Log ("health of player " + index.health);
Debug.Log ("position of player " + index.position);
}
}
}
Comment
Your answer
