Компилятор в Visual Studio имеет больше возможностей, чем компилятор в Unity, что означает, что некоторый код (особенно новые функции c #) выдаст ошибку в Unity, но не в Visual Studio.
Однако вы можете изменить свою целевую среду, чтобы она соответствовала той, которая ближе всего к тому, что Unity использует в вашем редакторе. Я делал это в Xamarin при разработке библиотек для Unity, но, похоже, это возможно и в Visual Studio.
В Visual Studio в свойствах проекта DLL установите свойство платформы Target для используемой версии платформы Unity. Это библиотека базовых классов Unity, которая соответствует API-совместимости, на которую нацелен ваш проект, такой как библиотеки базовых классов Unity, Micro или Web. Это препятствует тому, чтобы ваша DLL вызывала методы платформы, которые существуют в других платформах или уровнях совместимости, но которые могут не существовать в используемой версии платформы Unity.
https://msdn.microsoft.com/en-us/library/dn940020.aspx
unity .net profile upgrade
в Google