where can I learn more about using .NET assemblies with Unity?

I want to see if it is possible to make an extension to Unity that is a .NET assembly... but I'm not sure where to start.

There are are a couple of things to think about here. First, Unity does not have a unified way to use external assemblies normally. Because of this, you will have to wrap your own extension library. Take a look at the System.Reflection namespace to get started.

Yes, you can do any kind of plugins you want for Unity in C#, provided 3 things.

1) It is a class library. 2) It does not use classes unsupported by the current version of Mono running within Unity. 3) Your game will be standalone (no browser).

What you need to do is to create a new class library and implement your new funcionality. You can add references to UnityEngine there, no problems with that. Then what I did in my project, I used Visual Studio to open my Unity solution and added reference to my Class library in it. This already updated my plugin folder (if it doesn't do for you, copy your DLL to Assets/Plugins (not sure if the place really matters)). Keep in mind, though, that all calls to UnityEngine must be made in the main thread, or you'll get errors (your DLL will execute in the same thread as your game).