Wooh! Exciting techno-mumbo-jumbo coming up! 🙂
Unity’s game object system has a base-class called MonoBehaviour, and every script you want to use in your game scene has to derive from it. Thus, you use it for everything, it is your hook into everything that is Unity.
Mod makers for a Unity game would need to write their own MonoBehaviours and plug them into an existing game, but earlier versions of Unity did not allow the use of MonoBehaviours loaded from external libraries (those .dll things). This meant that for modding you either had to provide a system to link MonoBehaviour stubs to externally loaded behaviours, or just let go of your big ideas altogether. With Unity 3 though, it now appears that you can spawn MonoBehaviours loaded from external libraries directly into a scene! Score!
Admittedly, I only did an absolute minimum of testing. I created a subclass of MonoBehaviour like so:
- I can let the Volo application load user-made scripts at run-time.
- I can let users create their mods using the Unity editor.
I can even do this without having to give modders all of the source code. Instead, I just compile all Volo code into a library of its own, so people can link to it from their Visual Studio or MonoDevelop projects.
I’m really curious to see where this goes, and whether other Unity developers will do something like this. As far as I know nobody is doing it yet. 🙂