2016-11-30 3 views
-1

J'ai eu cette erreur Impossible de convertir implicitement le type System.Collections.Generic.List<Leap.Hand>-Leap.HandImpossible de convertir implicitement le type `` System.Collections.Generic.List <Leap.Hand> à `Leap.Hand`

Voici mon code:

using UnityEngine; 
using System.Collections; 
using Leap; 
using Leap.Unity; 

public class Swimming : MonoBehaviour { 

Controller controller; 


void Start(){ 
    controller = new Controller(); 
} 

void Update(){ 

    Frame frame = controller.Frame(); // controller is a Controller object 
    Hand hand = frame.Hands; 

    for (int i = 0; i < frame.Hands.Count; i++) { 
     if (frame.Hands [i].IsLeft) { 
      Debug.Log ("Left Hand Detected"); 
     } 
    } 
    } 
} 

J'ai beaucoup cherché mais je n'ai pas pu trouver quelque chose. Quelqu'un peut-il me aider s'il vous plaît

+2

'frame.Hands' est une collection d'instances' Hand'. Ce n'est pas un seul 'Hand'. C'est une chose qui contient beaucoup de 'Hand's. C'est une chose différente. Une boîte contenant des chatons n'est pas un chaton. Vous ne pouvez pas nourrir la boîte. Si vous voulez un chaton, vous devez attraper un chaton. C'est le chaton. La boîte n'est pas le chaton. –

Répondre

0

Votre problème est ici:

Hand hand = frame.Hands; 

frame.Hands est une collection de Hand, mais vous essayez d'attribuer cette valeur à une seule instance de Hand. Donc, à la place, vous devriez faire ceci:

List<Hand> hands = frame.Hands; 
+0

Merci beaucoup monsieur. Donc mon code peut-il détecter si la main est droite/est partie? –

+0

Eh bien, votre code semble bien, même sans cette collection de mains. Vous ne savez pas vraiment pourquoi vous attribuez cette variable. – ThePerplexedOne

+0

base sur ce que je comprends la boucle for est pour le nombre de doigts. donc si la main est laissée, elle débogera.log (main gauche détectée); –