2017-02-05 5 views
1

Ich mache ein Spiel, in dem das Speicher- und Lade-System angezeigt wird, wenn ich mit der Handfläche nach oben schaue. Das Problem ist, ich weiß nicht, wie ich feststellen kann, ob meine Handfläche nach oben zeigt. Alles, was ich weiß, ist, wie man den Abstand und die Position der Handfläche erreicht.So erkennen Sie, ob die Hand in der Leap-Bewegung nach oben zeigt (C#) Unity

Ich versuchte dies:

using Leap; 
using Leap.Unity; 

public class GetPamlPositionLeap : MonoBehaviour { 
LeapProvider provider; 
// Use this for initialization 
void Start() { 
    provider = FindObjectOfType<LeapProvider>() as LeapProvider; 
} 

// Update is called once per frame 
void Update() { 
    Frame frame = provider.CurrentFrame; 
    Hand hand = frame.Hand [0]; // cannot apply indexing 
    Vector position = hand.PalmPosition; 
    Vector direction = hand.Direction; 

    Debug.Log ("The position of hand is" + position + "The direction of hand is" + direction); 
} 
} 

Aber es gibt Fehler:

cannot apply indexing to an expression type

Antwort

1

Try *

Hand hand = frame.Hands[0]; 

Um zu entscheiden, ob die Handfläche nach oben zeigt, zu vergleichen, die Hand.PalmNormal mit einem Vektor, der nach oben zeigt - Sie definieren jedoch "nach oben".

Da Sie die neueren Orion-Assets für Leap Motion verwenden, können Sie auch das Skript PalmDirectionDetector verwenden.

* Es war eine schlechte Design-Wahl von haben eine Funktion namens Hand() und ein Array namens Hands.

+0

können Sie mir eine Probe dieses Herrn zeigen. Bitte – TheGinxx009

+0

Siehe die PalmWatcher-Funktion hier: https://github.com/leapmotion/UnityModules/blob/develop/Assets/LeapMotion/Scripts/DetectionUtilities/PalmDirectionDetector.cs –

Verwandte Themen