Will my idea for organizing different enemies work and is it best practice?

StarManta’s post is right on, and additionally you can do a lot with interfaces.

For instance in C# you can only inherit from one thing, eg, an Enemy.

Something might have other characteristics that are shared by many different objects and this is a great use for interfaces, which you can implement as many of them as you want.

Using Interfaces in Unity3D:

Check Youtube for other tutorials about interfaces and working in Unity3D. It’s a pretty powerful combination.