I want to use a private inner class MonoBehaviour as part of the internal implementation of a class (also a MonoBehaviour). Reduced to the essentials:
public class OuterClass : MonoBehaviour {
public void SomeMethod(GameObject go) {
go.AddComponent<InnerClass>();
}
private class InnerClass : MonoBehaviour {
}
}
This appears to be all working absolutely fine, with no errors or warnings. But it also appears to violate the statement in the Unity documentation that:
The class name and file name must be the same to enable the script component to be attached to a GameObject.
Is this a problematic violation of that rule? If so, what are the problems? I am aware that it means the script is not visible in the Editor, but that's exactly what I want: it should never be added by anything other than its enclosing class.