title: How to create a MonoBehaviour fabric for non-MonoBehaviour classes?
body: <p>I am developing a small nuclear reactor simulator game. I have a bunch of reactor component classes: <strong>HeatVent</strong>, <strong>HeatExchanger</strong>, <strong>UraniumCell</strong> etc. They are not deriving from MonoBehaviour since they don't have any Unity logic, but they do implement a shared interface <strong>IReactorComponent</strong>. What I want to do is to be able to create prefabs of such components (simple heat vent, advanced heat vent, doubled uranium cell etc.) The prefabs would have different sprites and something like that, but the main issue is to define what reactor component class the prefab is related to, because I can't just drag'n'drop a non-MonoBehaviour script on inspector. Also, I want to be able to set settings in the inspector (for example, <strong>HeatVent</strong> has <em>CoolAmount</em> and <em>HeatCapacity</em> properties, <strong>UraniumCell</strong> has <em>FuelAmount</em>, <em>HeatProduce</em> and <em>PowerProduce</em> properties).</p>
  <p>I have read about factory method pattern and as I understood, I have to create a fabric class that derives from <strong>MonoBehaviour</strong> for each reactor component class like <strong>HeatVentBehaviour</strong>, <strong>HeatExchangerBehaviour</strong> etc. Yes, that completely solves my issue with prefabs but is there any way to not create an additional MonoBehaviour wrap for each class? If I had 15 <strong>IReactorComponent</strong> classes, I would need to create 15 fabrics which feels like not the greatest solution.</p>