- Home /
I'm having an error with health bars C#
Here is the Error:
NullReferenceException: Object reference not set to an instance of an object Teddy.Update () (at Assets/Scripts/Teddy.cs:11)
Here is my code: using UnityEngine; using System.Collections;
public class Teddy : MonoBehaviour {
public int health = 6;
// Update is called once per frame
void Update () {
// set textmesh text
TextMesh tm = GetComponentInChildren<TextMesh>();
tm.text = new string('-', health);
// set textmesh color to red
tm.renderer.material.color = Color.red;
// adjust health bar so it always faces the camera
tm.transform.forward = Camera.main.transform.forward;
}
public void onDeath() {
// increase player gold
Player.gold = Player.gold + 1;
// destroy
Destroy(gameObject);
}
}
Here is a link to the tutorial: http://noobtuts.com/unity/tower-defense-game-step-4-scripting
I completed all of the tutorials, but I just don't have my health bar. If you go to the website and scroll down you'll see a picture with a teddybear and you'll see his health bar. I just don't know what is wrong with my code. :( I'm fairly new to coding.
Line 11 is the part where you set the color of your textmesh component. If you get a Null Reference there, a possible reason is that there is no material set for the textmesh component in the editor. When you then try to access the material, it will give you a null reference.
In any case in order to figure out which part is null, you can debug like this:
// Line having trouble: tm.renderer.material.color = Color.red;
if (tm == null) { Debug.Log("tm is null!"); } else if (tm.renderer == null) { Debug.Log("tm.renderer is null!"); { else if (tm.renderer.material == null) { Debug.Log("tem.renderer.material is null!"); }
I think thats not the problem line. Go inside the editor, and double click in the error in the console, which will open monodevelop right to the location of the error, so you know which line exactly is the problem. It seems like line eleven is something different here on this post than it really is, because your code actually starts at using UnityEngine; not where it starts here. Anyway my best guess is that the problem is Text$$anonymous$$esh is not assigned properly or something like that. Good luck!
Your answer