2017-02-07 11 views
2

おはようございます。私は私の指の私のオブジェクトへの衝突を検出することに少し問題があります。私の最初の段階では、それは私の指に衝突したときにオブジェクトを破壊するための私のコードはここにある:うるうモーションフィンガーを使用してオブジェクトを破棄することはできません

DetectionCollision.cs

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

public class GetFlashLight : MonoBehaviour { 

// Use this for initialization 
void Start() { 

} 

private HandModel IsHand(Collider other){ 
    if (other.transform.parent && other.transform.parent.parent && other.transform.parent.parent.GetComponent<HandModel>()) { 
     return other.transform.parent.parent.parent.GetComponent<HandModel>(); 
    } else { 
     return null; 
    } 
} 


void OnTriggerEnter(Collider other) { 
    HandModel hand_model = IsHand (other); 
    if (hand_model != null) { 
     this.GetComponent<DisableObject>().enabled = true; 
    } else { 
     this.GetComponent<DisableObject>().enabled = false; 
    } 
} 
} 

DisableObject.cs

public GameObject TurnOnFlashLight; 
    // Use this for initialization 
void Start() { 
    TurnOnFlashLight.gameObject.SetActive (true); 
} 

問題があるとき私は同じコードを適用するが、別のC#スクリプト(ofcourse) それは動作しませんでした。問題は何だと思いますか?

Components of my project

答えて

0

あなたは他のコライダーが手を持っている場合は見つけるしようとする、次の試みることができます。

あなたが検索処理を微調整することを好むだろうか GetComponentInParent制限がある場合、第二版がここに置かれ

あなたにストッパー。これにより

using UnityEngine; 

internal class HandModel : MonoBehaviour 
{ 
} 

internal class MyClass : MonoBehaviour 
{ 
    private HandModel TryGetHandVersion1(Collider other) 
    { 
     return other.GetComponentInParent<HandModel>(); 
    } 

    private HandModel TryGetHandVersion2(Collider other) 
    { 
     var current = other.transform; 
     while (current != null) 
     { 
      var handModel = current.GetComponent<HandModel>(); 
      if (handModel != null) 
       return handModel; 

      current = current.parent; 
     } 
     return null; 
    } 

    private void OnTriggerEnter(Collider other) 
    { 
     var isHand = TryGetHandVersion1(other) != null; 
    } 
} 
+0

これは機能しませんでした。しかし、私が得たものを投稿するレスポンスに感謝します。 – TheGinxx009

0
using UnityEngine; 
using Leap; 
using Leap.Unity; 

void OnTriggerEnter(Collider other){ 
    FingerModel finger = other.GetComponentInParent<FingerModel>(); 
    if(finger){ 
     this.GetComponent<DisableObject>().enabled = true; 
    } 
} 

私が欲しいものを手に入れます。

+0

これは基本的に私が投稿したものです。 – Aybe

関連する問題