私は、飛躍モーションインタラクションエンジンを使用してオブジェクトを3次元で動かすことを含むアプリケーションを作成しようとしています。しかし、私はまた、どの指が物体と接触しているのかを知る必要があります。とにかく私はそれをすることができますか?前もって感謝します!!とにかく、インタラクションエンジン(Leap Motion&Unity3D)でオブジェクトの一部に触れている部分を検出することができます。
0
A
答えて
1
厳密に言えば、インタラクションエンジンの把握ロジックは把握を開始したり解放したりするために非常に重要なことですが、この情報にアクセスするためのフレンドリーなAPIはありません。
最も効率的な方法ではないが、これを表現するより便利な方法は、手がインタラクションオブジェクトと交差しているときを検出し、各指先とオブジェクトの間の距離をチェックすることです。
InteractionBehaviourと交差するすべてのInteractionControllerは、contactingControllers
プロパティを使用してアクセスできます。 Unity向けリープツールに含まQuery
ライブラリを使用して、あなたはあまりにも多くの努力なしにリープ手の束に相互作用コントローラの参照の束を変換することができ、その後、チェックを実行:あなたはからチェックしたときに、
using Leap.Unity;
using Leap.Unity.Interaction;
using Leap.Unity.Query;
using UnityEngine;
public class QueryFingertips : MonoBehaviour {
public InteractionBehaviour intObj;
private Collider[] _collidersBuffer = new Collider[16];
private float _fingertipRadius = 0.01f; // 1 cm
void FixedUpdate() {
foreach (var contactingHand in intObj.contactingControllers
.Query()
.Select(controller => controller.intHand)
.Where(intHand => intHand != null)
.Select(intHand => intHand.leapHand)) {
foreach (var finger in contactingHand.Fingers) {
var fingertipPosition = finger.TipPosition.ToVector3();
// If the distance from the fingertip and the object is less
// than the 'fingertip radius', the fingertip is touching the object.
if (intObj.GetHoverDistance(fingertipPosition) < _fingertipRadius) {
Debug.Log("Found collision for fingertip: " + finger.Type);
}
}
}
}
}
関連する問題
- 1. オブジェクトが色に触れているときを検出する方法は?
- 2. Leap Motionポイントクラウド
- 3. RecyclerView.ViewHolderの内部でビューが部分的に検出される
- 4. ノンアディティブファクトをトランザクションファクトテーブルの一部にすることができます
- 5. jquery - divの下部がブラウザウィンドウの下部に接触しているかどうかを検出しますか?
- 6. vimで `gq`を再フォーマットすると、TeXの部分に触れることはありませんか?
- 7. Leap Motionを使用しているときにOnCollisionEnterをMesh Colliderと併用できない
- 8. PopupWindowを開いて外部に触れることができるようにする
- 9. C++ 14標準ライブラリのどの部分が、どの部分をconstexprにすることができますか?
- 10. 上位のサブビューに触れたことを検出できますか?
- 11. プロファイリングされたアプリケーションを終了することなく出力レポートの一部を出力できますか?
- 12. 内部で呼び出すことができるオブジェクト関数を外部に設定する
- 13. 部分ビューで部分ビューを読み込むことはできますか?
- 14. なぜ部分関数を書くことができないのですか?
- 15. appium ios一部のボタンを検査することができません
- 16. `startat`を指定すると、部分文字列の先頭に一致することはできますか?
- 17. 各部門をどのように分けることができますか?
- 18. [Leap Motion Android SDK]のコピーを持っている人はいますか?
- 19. Leap Motion Get Finger Bending(C#)
- 20. faceboxを使って部分的にレンダリングすることができません
- 21. キャンバス要素の異なる部分のクリックを検出することはできますか?
- 22. $テキスト検索で部分一致を実行することはできますか?
- 23. アクティビティインジケータの背景に触れることができます
- 24. クライアントがウェブページの上部または下部にスクロールしていることを検出するにはどうすればよいですか?
- 25. Cypherは別のコレクションにない部分と一致することができません
- 26. 部分的なUUIDに基づいてビーコンを検出することは可能ですか?
- 27. 拡張部分の一部がxsd:any ## otherのときに動作する
- 28. SpriteKitで2つのオブジェクトが接触したときを検出する方法
- 29. 文字列に長い単語の一部ではない部分文字列と部分文字列が含まれています(完全一致)
- 30. いつも左の部分が空になる右外部結合を書くことは可能ですか?
私は推測しますこれらの名前を直接得ることができない場合は、空のgameObjectに指先や手の子としてのコライダーを追加し、 'OnTriggerEnter'を使用してあなたの指や手の名前を取得する – Thalthanas
返信ありがとう、しかし、インタラクションエンジンは剛性の手の代わりにブラシの手が必要と私はブラシの手で指を見つけることができませんでした。私が間違っているなら、私を修正してください。ありがとう! –
私はうるう動作をしてからしばらくしています。私が思い出したのは、私は磁気ピンチを使ってオブジェクトをつかんでいます。また、私は手のひらの中にある物を、川の水を手に取って、手の後ろに当てるように握ることができました。 Unityのデモシーンはありますか? 「たくさんの立方体」のようなシーンの例は、私が推測するシーンの名前だったはずです。その場面で使用された手を確認してください。彼らはあなたにリードを与えるかもしれません。私はインタラクションエンジンを使用しているかどうかはわかりません。申し訳ありません。 – Thalthanas