new Monobehaviour as variable returns warning...

Hi, I have to create an Array with contains a few classes which based on Monobehaviour.
This is the code I’m using:

Object[] scripts = new Object[]{Flare, Knife, Speer};

Now I get a warning everytime I start the game:

You are trying to create a MonoBehaviour using the ‘new’ keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all

I know that a Monobehaviour script has to be attached to a GameObject and can be referenced from there, but now I have a few questions.

  1. Is there a way to use Monobehaviour without a GameObject?
  2. What can happen if I ignore the warning?
  3. Can I just replace Monobehaviour with ScriptableObject?

Thanks for help!

  1. No, you should not ever use Monobehaviour without a GameObject, in my experience.
  2. Unexpected behaviour. Most notably, null references for transform and gameObject fields.
  3. Yes, that’s a good idea, or just don’t derive if it isn’t an object in the scene at all.