Unity сама по себе не загружает никакие сборки. Он работает с объектами Type и позволяет CLR загружать эти типы по своему усмотрению.
Чтобы выполнить динамическое обнаружение так, как вы хотите, вам нужно написать небольшой код, чтобы прокрутить сборки в каталоге bin, загрузить их в память, а затем прокрутить их в поисках интересующих вас типов. Это довольно тривиально, если вы знакомы с API отражений.
Вот некоторый код, который вы можете использовать для циклического перемещения по каталогу bin и проверки загрузки каждой сборки:
private static bool ForceLoadAssemblies()
{
foreach (var fileName in Directory.GetFiles(AppDomain.CurrentDomain.RelativeSearchPath, "*.dll"))
{
string assemblyName = Path.GetFileNameWithoutExtension(fileName);
if (assemblyName != null)
{
Assembly.Load(assemblyName);
}
}
return true;
}
Другой вариант - вместо этого посмотреть на MEF. MEF был явно разработан для случая динамического обнаружения, в то время как Unity больше построена на внутреннем управлении зависимостями.