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*, 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*, 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–;*
* }*
* }*
}

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).