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の値にアクセスすることができますか?事前に
おかげで、あなたはおそらく、名前空間欠けている
良い推測を、私はすでに私のスクリプトに次の行を持っている...しかし、それは別の質問の方に私を指摘。 'dictionary [Enum.Key]'の構文が一般的でないか、それとも単なるコード化の問題でしょうか?つまり、問題は他のどこにでもあると私は書いた少しのコードテストによる:[link](http://rextester.com/BNFCD7626)。私はこの方向でさらに調査しますので、どうもありがとうございます。 – bertiooo
2回目の試行でテストが失敗するのを見ると、辞書にはインデックスがありません。アイテムがリストや配列のようにメモリ内で整列していないためです。最後のバージョンは、例外を避けるためにキーをチェックできるので、最良のバージョンです。これはdict.ContainsKeyよりも高速です – Everts
デバッガのウォッチパネルで実行時に変数を読み込もうとしましたが、現在は動作しています。モノデベロップメントの問題であるようです – bertiooo