Unity doesn't seem to find a class that actually exists

I have a script (and therefore a class) named GUIController (.cs), but when I try to “store” it as a variable to access it quickly, I just get Unknown identifier: ‘GUIController’ [TRY1] or The name ‘GUIController’ does not denote a valid type (‘not found’) [TRY2]

The code:

//Try 1
var GUIEx : Component;

function Start(){
    GUIEx = GameObject.Find("Camera").GetComponent(GUIController);

//Try 2
var GUIEx : GUIController;

//Didn't even bother to write the code, got the error straight away

Read the docs about script compilation order. But it would be better if you did not mix languages like this. It’s not a problem mixing languages if you’re dealing with things like functions in non-MonoBehaviour classes, but MonoBehaviour scripts of different languages just makes things more complicated, and sometimes impossible (if you have scripts that depend on each other).

Problem solved by moving GUIController to Assets\Standard Assets

Thanks to eric5h5. Resources here