Почему Unity не может работать с кодом C # 6 ? Это всегда дает мне ошибки компилятора. Вот несколько примеров кода:
using static System.Convert;
using static System.Environment;
$"€{punten}{NewLine}€{Money}{NewLine}€{KilledEnemies}{NewLine}€{bonus}{NewLine}€{total}";
Я использую Visual Studio в качестве редактора кода и собираю без ошибок. Если я нажму play в Unity, он не будет построен.
unity .net profile upgrade
в GoogleОтветы:
Unity использует старую версию Mono runtime, основанную на .NET3.5. Он использует что-то между C # 3 и 4 с точки зрения возможностей.
Я нашел это , погуглив вокруг. Не уверен, что это работает, но, возможно, стоит что-то исследовать.
источник
Unity Technologies объявила, что Unity обновляется до версии 4.6+. Это доступно через бета-тестирование сейчас.
источник
Это видео на YouTube демонстрирует, как кто-то смог заставить синтаксис C # 6 работать с Unity, создав новый проект, изменив целевой .Net Framework обратно на 3.5, установив выходные каталоги для сборки и выпуска в папку ресурсов проекта Unity и добавив ссылка на UnityEngine dll. Отладка, кажется, функционирует так же.
источник
Компилятор в Visual Studio имеет больше возможностей, чем компилятор в Unity, что означает, что некоторый код (особенно новые функции c #) выдаст ошибку в Unity, но не в Visual Studio.
Однако вы можете изменить свою целевую среду, чтобы она соответствовала той, которая ближе всего к тому, что Unity использует в вашем редакторе. Я делал это в Xamarin при разработке библиотек для Unity, но, похоже, это возможно и в Visual Studio.
https://msdn.microsoft.com/en-us/library/dn940020.aspx
источник