2016-07-13 7 views
0

内のEnumキーによる私はKinectのプラグインでユニティでC#辞書 - アクセスバリューユニティ/ Kinectのプロジェクト

RootSystem.Collections.Generic.Dictionary<Microsoft.Kinect.Face.FaceProperty, Windows.Kinect.DetectionResult> FaceProperties 

にアクセスしようとしています。

したがって、FacePropertyと検出結果が列挙されている:

FaceProperties      // Count = 8 
FaceProperties[0]      // Incorrect types or number of arguments 
FaceProperties[FaceProperty.Happy] // The name 'FaceProperties[global::Microsoft.Kinect.Face.FaceProperty.Happy]' 
             // does not exist in the current context. 

はあなたを行います

public enum FaceProperty : int 
{ 
    Happy         =0, 
    Engaged         =1, 
    WearingGlasses       =2, 
    LeftEyeClosed       =3, 
    RightEyeClosed       =4, 
    MouthOpen        =5, 
    MouthMoved        =6, 
    LookingAway        =7, 
} 

とデバッグモードで次に

public enum DetectionResult : int 
{ 
    Unknown         =0, 
    No          =1, 
    Maybe         =2, 
    Yes          =3, 
} 

、私はFacePropertiesにアクセスしようとしていましたどのようにして辞書のFacePropertiesの値にアクセスすることができますか?事前に

おかげで、あなたはおそらく、名前空間欠けている

答えて

0

bertiooo:

using Microsoft.Kinect.Face; 
+0

良い推測を、私はすでに私のスクリプトに次の行を持っている...しかし、それは別の質問の方に私を指摘。 'dictionary [Enum.Key]'の構文が一般的でないか、それとも単なるコード化の問題でしょうか?つまり、問題は他のどこにでもあると私は書いた少しのコードテストによる:[link](http://rextester.com/BNFCD7626)。私はこの方向でさらに調査しますので、どうもありがとうございます。 – bertiooo

+0

2回目の試行でテストが失敗するのを見ると、辞書にはインデックスがありません。アイテムがリストや配列のようにメモリ内で整列していないためです。最後のバージョンは、例外を避けるためにキーをチェックできるので、最良のバージョンです。これはdict.ContainsKeyよりも高速です – Everts

+0

デバッガのウォッチパネルで実行時に変数を読み込もうとしましたが、現在は動作しています。モノデベロップメントの問題であるようです – bertiooo