If you specify [RequireComponent(typeof(Collider))] for a MonoBehaviour, once you try adding it, you will get a message:
Adding component failed. Add required component of type ‘MeshCollider’ or ‘BoxCollider’ or [snip] to the game object ‘Your Object’ first.
I would like to have a similar message for one of my own components. I have an interface that is implemented by multiple classes and I would like to list them there. If I try using my interface with RequireComponent, I get a message that says that script class can not be abstract. If I have a concrete base class with RequireComponent, than it is simply added, which is not what I want. I would like to prompt user that one of the derived classes should be used.
I can see that Collider derives from Component, but my scripts must derive from MonoBehaviour. Does it mean I can not simulate this behavior? Any suggestions?