2017-08-10 11 views
4

GraphiteをUnity3D(バージョン2017.1.0f3 Personal)に実装しようとしています。私は.NET 4.6(Experimental)を使用していますが、これにもかかわらず、Unityは動的キーワードをサポートしていません。 .NET 4.0以降、これは奇妙です。これは.NETの一部です。統一を除いて。私はそれを動作させる方法をいくつか探していましたが、動的キーワードに対する解決策はありませんでした。エラーは次のとおりです。Unityのdynamicキーワード/ .NET 4.6機能を使用

Severity Code Description Project File Line Suppression State 
Error CS1980 Cannot define a class or member that utilizes 'dynamic' 
because the compiler required type 
'System.Runtime.CompilerServices.DynamicAttribute' cannot be found. Are you 
missing a reference? skiing-prototype (1) D:\skiing-prototype 
(1)\Assets\Scripts\GraphQL.cs 62 Active 

これは、GraphQL C#クライアントを使用した場合の唯一の警告です。誰もまだそれを働かせるためにそれを試したことがありますか?私はまだそれを稼働させるための大きな努力をしていなかった。

EDIT:

私はここに、このクライアント使用しています:https://github.com/bkniffler/graphql-net-client

また、これは視覚的なスタジオからの誤差はあるが、しかし、ユニティに更新する、それがあまりにもエラーを示しコンソールまさに一瞬

Assets/Scripts/GraphQL.cs(80,16): error CS1980: Dynamic keyword requires 
`System.Runtime.CompilerServices.DynamicAttribute' to be defined. Are you 
missing System.Core.dll assembly reference? 

これはユニティエディタのエラーです。これはビジュアルスタジオのエラーと同じようです

+0

Microsoft.CSharp.dllを参照していますか? [here](https://stackoverflow.com/questions/11417047/c-sharp-dynamic-compilation-and-microsoft-csharp-dll-error)を参照してください。 –

+0

いいえ、私はUnityの元来、私はかなり合格できませんVisual Studioの任意の種類のdllをこのプラグインフォルダからちょうど – Citrus

+0

エラーCS1703:同じIDを持つアセンブリ 'Microsoft.CSharp'が既にインポートされています。参照の1つを削除することを検討してください アセット/プラグイン/ Microsoft.CSharp.dll(以前のエラーに関連するシンボルの場所) Microsoft.CSharp.dll コンパイルに失敗しました:1エラー( s)、0警告 – Citrus

答えて

3

最初の手順は、 Unityがこれらの2つの基本C#6機能をMS siteから認識するとします。

.Try "インデックス初期化子" 機能:

private Dictionary<int, string> webErrors = new Dictionary<int, string> 
{ 
    [404] = "Page not Found", 
    [302] = "Page moved, but left a forwarding address.", 
    [500] = "The web server can't come out to play today." 
}; 

。その後、「文字列補間」機能:彼らはあなたがエラー与える場合

private string FirstName = ""; 
private string LastName = ""; 
public string FullName => $"{FirstName} {LastName}"; 

問題がないだけdynamicキーワードですが、Visual StudioはUnityが設定されている.NETバージョンを認識できないという問題。

コメントセクションから、Unityは最初の例をコンパイルできませんでした。


可能な修正については、手順を1つずつ実行してください。 でなく、をスキップしてください。 - >プロジェクト設定 - >プレーヤ - >その他の設定 - >設定 - >ランタイムバージョンのスクリプト - >実験的(.Net 4.6に相当する)に移動します。

.GO編集する - > [プロジェクトの設定] - > [プレーヤー] - > [その他の設定] - > [設定] - > [アピ互換性レベル - > .NET 4.6

.RestartをユニティエディタとVisual Studio。両方を再起動する必要があります。

上記の両方のC#機能をテストします。彼らがうまくいくならば、dynamicキーワードは同じようにすべきです。彼らは#4に移動しない場合。

。アップデートVisual Studio。これはとても重要です。 Visual Studioを最新のバージョン/パッチに更新します。

あなたはまだいくつかのファイルが失われているとして、再びステップ#1#2を行い、その後、次に再インストールVisual Studioとユニティの両方をコンパイルするには、上記の両方C#6の機能を得ることができない.IF 。

.Finally、あなたが働いて、両方のC#6の機能を得るが、dynamicキーワードはまだユニティ2017.1からUnity 2017.2に更新し動作しない場合。このバージョンでは多くの.NETの問題が修正されました。

dynamicキーワードではUnity 2017.2を使用していますが、問題は発生しません。また、GraphQLも問題なく動作しています。

+0

上記の1と2の機能は動作しますが、ダイナミックな機能はまだないのはどういう意味ですか? – user441521

+0

私はUNITY 2017.2.0b8を持っています – user441521

関連する問題