x


OnGui function - Array is out of index question

Hi fellow Uniters, anyone have any idea why I keep getting an "Array is out of index" errors on the following line:

GUI.DrawTexture(playerHealthRect, lifeBarTexture[i], ScaleMode.ScaleToFit, true, 0.0f);

I got this code from another post. Thanks for the help. The complete code is below:

// LifeBar.cs - script to handle player and enemy lifebar

using UnityEngine;
using System.Collections;

public class LifeBar : MonoBehaviour
{
public Texture2D[] lifeBarTexture;
public int playerHealth = 10;
public int playerHealthTextureSize = 30;

void OnGUI ()
{
    Rect playerHealthRect = new Rect(10, 5, playerHealthTextureSize, playerHealthTextureSize);
    for (int i = 0; i < playerHealth; i++)
    {
       GUI.DrawTexture(playerHealthRect, lifeBarTexture[i], ScaleMode.ScaleToFit, true, 0.0f);
       playerHealthRect.x += playerHealthTextureSize + 10;
    }
}

void OnCollisionEnter (Collision collision)
{
    if (collision.collider.tag == "enemy")
    {
       if (playerHealth -1 >= 0)
         lifeBarTexture[playerHealth -1] = null;
       playerHealth--;
    }
}

}

more ▼

asked May 04 '12 at 07:33 AM

NorthernEagle gravatar image

NorthernEagle
71 6 11 12

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

This is because lifeBarTexture is uninitialised and thus is empty.

On the line that causes the error you are looking in the lifeBarTexture array at the i'th index, but because it is empty that entry is blank.

To fix this look at the GameObject that contains this script in the Inspector. There (under the LifeBar script component) you will see a "Life Bar Texture" field. Add Texture components to this field until it has the same number of entries as the "Player Health" field (defaults to 10, but could also be set in the Inspector).

more ▼

answered May 04 '12 at 08:08 AM

cordinc gravatar image

cordinc
169 2 5

Excellent, thank you Cordinc! Your suggestion fixed the bug.

May 04 '12 at 09:49 PM NorthernEagle
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x1356
x242
x106
x65

asked: May 04 '12 at 07:33 AM

Seen: 407 times

Last Updated: May 04 '12 at 09:49 PM