Pourquoi Unity ne peut-il pas fonctionner avec du code C # 6 ? Cela me donne toujours des erreurs de compilation. Voici quelques exemples de code:
using static System.Convert;
using static System.Environment;
$"€{punten}{NewLine}€{Money}{NewLine}€{KilledEnemies}{NewLine}€{bonus}{NewLine}€{total}";
J'utilise Visual Studio comme éditeur de code et je construis sans erreur. Si j'appuie sur play dans Unity, cela ne se fera pas.
unity .net profile upgrade
sur GoogleRéponses:
Unity utilise une ancienne version du runtime Mono basé sur .NET3.5. Il utilise quelque chose entre C # 3 et 4 en termes de fonctionnalités.
J'ai trouvé cela en cherchant sur Google. Je ne sais pas si cela fonctionne, mais cela pourrait valoir la peine d'être étudié.
la source
Unity Technologies a annoncé que Unity passe à la version 4.6+. Il est maintenant disponible via les tests bêta.
la source
Cette vidéo sur YouTube montre comment quelqu'un a réussi à faire fonctionner la syntaxe C # 6 sur Unity en créant un nouveau projet, en redéfinissant le .Net Framework cible sur 3.5, en définissant les répertoires de sortie de génération et de publication dans le dossier d'actifs du projet Unity et en ajoutant un référence à la DLL UnityEngine. Le débogage semble fonctionner de la même manière.
la source
Le compilateur dans Visual Studio a plus de fonctionnalités que le compilateur dans Unity, ce qui signifie que du code (en particulier les fonctionnalités c # plus récentes) donnera une erreur dans Unity, mais pas dans Visual Studio.
Vous pouvez cependant modifier votre framework cible pour qu'il corresponde à celui qui se rapproche le plus de ce que Unity utilise dans votre éditeur. J'ai fait cela dans Xamarin lors du développement de bibliothèques pour Unity, mais il semble que cela soit également possible dans Visual Studio.
https://msdn.microsoft.com/en-us/library/dn940020.aspx
la source