Is it a bad idea to create an instance of a Monobehaviour without a GameObject?

I’m making a tile based puzzle game. I want to store the current layout and the starting layout. The tiles are all monobehaviours, so there’s a gameobject with mesh for each one. Obviously I don’t want to display the starting layout, only the current layout. So I’ll clone the tiles at the beginning and keep the clones in an array for reference.

My question is, is it a bad idea since the tiles derive from Monobehaviour? I could have a different class TileMarker, but it would carry almost the same info as Tile, maybe just a couple of methods fewer. That seems unwieldy, as I’d have to convert between types a lot.

Unity consol send a warning message if you try to instantiate a monobehaviour without a game object. The warning clearly say that “This is not allow, MonoBehaviours can only be added ussing AddComponent()”.

So i think it’s a bad idea ^^

In order to get a clone without the a game object, you would have to use ‘new’ on the class. But Unity does not all the ‘new’ keyword to be used on a class derived from Monobehaviour. As an alternative, consider having each tile save its own initial state. So to save the initial position, just have a Vector3 variable and assign it the transform.position in the Start() method. You could either make this data public and access it outside, or you could make each tile responsible for using this data.