project wide variables and constants

My project relies on a few scripts that need to be persistent throughout the whole life of the application, and their function is to basically hold the reference and values of gameobjects and states, so I was wondering:

is there a way to create project wide variables that you can access without
GetComponent and GameObject.Find?

I have just started thinking about the editor, but apart from the tutorials haven’t seen much of them around:

do you think that it's possible to create an "editor class"(<= totally guessing here) that will exist
throughout the whole application, and which could replace my persistent scripts 
in storing my variables, and that I could access without .Find?

My current scripts rely on dontdestroyonload and they work with it, but I am forced to perform many .Find and .GetComponent to get the references of my scene objects and variables (there’s a lot of interaction in all scenes).

thanks

You can have a class (doesn’t have to derive from MonoBehaviour) with public static variables. You can then just access them from everywhere in your project with ClassName.variable, but I don’t think you can assign static vars in the editor. Example:

class MyVariableStorage
{
    public static int importantVar = 0;
}

class AnyScript : MonoBehaviour
{
    private void Start()
    {
        Debug.Log(MyVariableStorage.importantVar);
    }
}

public var myPublic : float = 0;//if no other value is assigned in editor it will reset static variable to 0
static var myStatic : float;

function Awake()
{
myStatic = myPublic;
}