Gizmos won’t show up?

Problem:
You are using OnDrawGizmos to use DrawCube, but your cubes aren’t showing up.

Example:
using UnityEngine;
using System.Collections;

public class SpawnPoint : MonoBehaviour {

public void OnDrawGizmos(){
Gizmos.DrawCube(transform.position, new Vector3(2,2,2));
}
}

Solution:
Read the rest of this entry »

Programming Error: Unreachable Code Detected

Explanation:
This is generally when there is a fragment of code that can never be accessed under any circumstance. It’s a very general category. It might happen if you create an infinite loop that has code after it – since it’s infinite, it will never end to execute the next line. It can also happen if there is an impossible if/else, switch or other control structure. “Impossible” does not allow for any circumstance where it can happen. It is logically impossible.

Example:
while(true) {
Something();
}
OtherThing();

Solution:
Read the rest of this entry »

Unity Error: ListenerException

ListenerException: Attempting to remove listener for type player health updated but Messenger doesn't know about this event type.

Explanation:
Messenger is trying to remove a listener, but it doesn’t recognize the one you passed it. This means that either it wasn’t told about the listener that you are sending it, or you have a typo.

Non-programming explanation:
You have a package at UPS with the tracking number #1000000 (your Listener) and you want to pick it up from UPS (Messenger). You go to the UPS store and tell them the tracking number is #1888888 by accident, but they cannot find your package, so they keep your real package in the back (your Listener is not removed).

Example:
Messenger.AddListener("status", OnChange);
Messenger.RemoveListener("statussss", OnChange);

Solution:
Read the rest of this entry »

Programming Error: Cannot implicitly convert type `float’ to `int’.

error CS0266: Cannot implicitly convert type `float' to `int'. An explicit conversion exists (are you missing a cast?)

Explanation:
This often happens when ints are used in an equation that would yield a non-int, such as a decimal (float). In the example, 100/3 is 33.33333, which is being stored in an int. An int cannot store decimals, you need a float or double for that.

Example:
int var = 100/3;

Solution:
Read the rest of this entry »

Unity Error: No 'Renderer' attached to game object.

MissingComponentException: There is no 'Renderer' attached to the "mob_Slug" game object, but a script is trying to access it.

You probably need to add a Renderer to the game object "mob_Slug". Or your script needs to check if the component is attached before using it.

From Tutorial 51: Targetting 2.0 part 1

Explanation:
mob_Slug1 has an animation and a mob, but not a Renderer. It’s looking for a renderer because we are changing the color, and in order to get that material you have to go to the subfolder in the mob called Sphere, which holds the texture.

Example:
selectedTarget.renderer.material.color = Color.magenta;

Solution:
Read the rest of this entry »