C# just sort of… does it. You don’t need to “include” anything; any C# files built in the same assembly (which means, any C# files in your project folder, generally speaking) can all “see” each other.
If a particular thing is a set of functions (as opposed to “a thing”), you can make the class static.
If you want to put utilities in Utilities.cs:
public static class Utilities {
public static int sum(int a, int b) {
return a+b;
}
}
And all your scripts can now access it:
void Update() {
Debug.Log("3 plus 5 is " + Utilities.sum(3, 5) );
}
It’s also recommended to put classes in specific namespaces for organizational purposes. This way, your “Utilities” class won’t collide with a “Utilities” class in a package you download from the asset store, for example. In which case:
namespace A_Box.CommonScripts {
public static class Utilities {
public static int sum(int a, int b) {
return a+B;
}
}
}
In that scenario, to use classes in a different namespace than the one you’re currently in, you’d add “using A_Box.CommonScripts;” to the top of your C# file.