2016-08-14 6 views
0

Ich mache ein Tutorial von VR Dev School. Die Lektion besteht darin, ein Objekt aufzuheben und die Transformation zu überarbeiten. Dies ist der Code, den ich genau aus der Lektion kopiert habe. Ich habe das Skript und einen Sphere Collider an controlller angehängt (links). Ich habe versucht, 'Trigger' ein-/auszuschalten. Die Kollision wird in der Konsole nicht erkannt. Ich erhalte keine Fehler oder Warnungen.Kann Kugel mit Vive-Controller nicht aufnehmen. Kollision nicht erkannt

ist Jede mögliche Unterstützung geschätzt, und ich werde alle Fragen

using UnityEngine; 
using System.Collections; 

[RequireComponent(typeof(SteamVR_TrackedObject))] 

public class PickupParent : MonoBehaviour { 

    SteamVR_TrackedObject trackedObj; 
    SteamVR_Controller.Device device; 


    void Awake() { 
     trackedObj = GetComponent<SteamVR_TrackedObject>(); 

    } 

    void FixedUpdate() { 
     device = SteamVR_Controller.Input((int)trackedObj.index); 
     if(device.GetTouch(SteamVR_Controller.ButtonMask.Trigger)) 
     { 
      Debug.Log("You are holding 'Touch' on the trigger"); 
     } 
     if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)) 
     { 
      Debug.Log("You activated touchdown on the trigger"); 
     } 
     if (device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger)) 
     { 
      Debug.Log("You activated TouchUp on the trigger"); 
     } 
     if (device.GetPress(SteamVR_Controller.ButtonMask.Trigger)) 
     { 
      Debug.Log("You are holding 'Press' on the trigger"); 
     } 
     if (device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger)) 
     { 
      Debug.Log("You activated press down on the trigger"); 
     } 
     if (device.GetPressUp(SteamVR_Controller.ButtonMask.Trigger)) 
     { 
      Debug.Log("You activated press Up on the trigger"); 
     } 
    } 
    void onTriggerStay(Collider col) 
    { 
     Debug.Log("You have collided with " + col.name + " and activated onTriggerStay"); 
     if (device.GetTouch(SteamVR_Controller.ButtonMask.Trigger)) 
     { 
      Debug.Log("You have collided with " + col.name + " while holding down Touch"); 
      col.attachedRigidbody.isKinematic = true; 
      col.gameObject.transform.SetParent(gameObject.transform); 
     } 
    } 
} 
+0

Seit 'Debug.Log (" Sie haben kollidiert mit "+ col.name +" und aktiviert onTriggerStay ");' wird angezeigt ..... Ist 'Debug.Log (" Sie haben kollidiert mit "+ col. Name + "während Touch gedrückt halten"); 'zeigt auch das Konsolenprotokoll? – Programmer

+0

Nein, es werden Berührungen erkannt und der Vive-Controller in der Konsole gedrückt. Keine Kollisionserkennung. –

+0

Sie sollten diesen Code mit einem vollständigen Code aktualisieren – Programmer

Antwort

1

Dies ist ein einfacher Fehler beantworten. Es sollte OnTriggerStay nicht onTriggerStay sein. Bitte schreiben Sie die O Großschreibung und Trigger/Kollision sollte erkannt werden.

+0

Sie sind richtig, Sir. Danke für die Unterstützung lol –

+0

Nizza. Musste das testen, um es herauszufinden. Sie können als Antwort akzeptieren, wenn Ihr Problem gelöst ist. – Programmer