Search Unity

TurnBased RPG Help, Checking booleans with an array

Discussion in 'Scripting' started by Otis, Apr 7, 2013.

  1. Otis

    Otis

    Joined:
    Dec 14, 2011
    Posts:
    28
    Hello, I'm trying to make an Turn based RPG battle system using js and I need some help with checking an array. I have an array called "E" for Enemies and its of the type Gameobject and I just throw the enemy prefab into it in the inspector. Now the every enemy has a script on it called "Alive" witch holds an boolean called "alive" and in the start function "alive" is set to true meaning that enemy has been spawned. I have that part down but now I want to have an array check every enemy in the "E" array to see if its boolean "alive" is true. I get no compiler errors but the code does not work. Any help would be much appreciated, Here is my code.

    Code (csharp):
    1.  //ArrayCheck.js
    2.      
    3.     #pragma strict
    4.     var E : GameObject[]; // Array that holds enemy prefabs
    5.     var sp : Transform; // Spawn point
    6.      
    7.      
    8.     function Start () {
    9.     Instantiate(E[0], sp.transform.position, sp.transform.rotation); // Here I only Instantiate the first Enemy prefab in the E Array
    10.      
    11.     // Here is where I want to try to access the boolean of the gameobject to see if its true or false
    12.      
    13.     for (var i = 0; i<E.Length; i++){
    14.      
    15.     if(E[i].GetComponent(Alive).alive == true){
    16.     Debug.Log("Im Alive!");
    17.      
    18.     }
    19.     }
    20.  
    21. }
    Code (csharp):
    1.  //Alive.js
    2.     //This is the script that is attached to all enemies prefabs
    3.      
    4.     #pragma strict
    5.      
    6.     var alive:boolean;
    7.      
    8.     function Start () {
    9.     alive = true;
    10.     }
     
  2. snortop

    snortop

    Joined:
    Dec 16, 2011
    Posts:
    194
    Have you tried a debug of the if statement?

    As i see it you will always add to E[0] and never get any more enemy.
    So it this the actual script or just a short down version of it?

    Also i think that the instantiated new object you made will never get it's Alive set to true as it hasent started the start function in Alive.js.
    You are still in the script of ArrayCheck. So might have to check that in a lateupdate or something else.