2016-07-13 6 views
0

에서 열거 키에 의해 액세스 값 I는 키 넥트 플러그인과 유니티에서C#을 사전 - 유니티/키 넥트 프로젝트

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

에 액세스하기 위해 노력하고있어.

따라서, FaceProperty 및 DetectionResult이 열거 형은 다음과 같습니다

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

두 번째 시도에서 테스트가 실패하는 것을 볼 수 있습니다. Dictionary에는 인덱싱이 없습니다. 항목이 목록이나 배열처럼 메모리에 정렬되지 않았기 때문입니다. 마지막 버전은 예외를 피하기 위해 키를 확인할 수있는 최상의 방법입니다. 또한 dict.ContainsKey보다 빠릅니다. – Everts

+0

디버거 시계 패널에서 런타임에 변수를 읽으려고했는데 이제는 작동합니다 ... monodevelop .. 문제가있는 것 같습니다. 다시 thx – bertiooo

관련 문제