Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice
  2. Ever participated in one our Game Jams? Want pointers on your project? Our Evangelists will be available on Friday to give feedback. Come share your games with us!
    Dismiss Notice

TurnBased RPG Help, Checking booleans with an array

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

  1. Otis


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


    Dec 16, 2011
    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.