2015-05-22 13 views
7

Ich habe eine 2D-Szene, die eine Liste der verfügbaren Pappszenen (wie Thumbnails) zeigen soll. Nachdem der Benutzer ein Miniaturbild angetippt hat, versuche ich ihn zur ausgewählten Pappszene zu schicken. Allerdings kann ich die Berührungsereignisse in der ersten (Listen-) Szene nicht abfangen. Nach einem Tippen passiert nichts, einfach gesagt. (EDIT: Ich möchte hinzufügen, dass ich getestet dies nur auf Android)Verwenden von Cardboard SDK in Unity 5 - keine Berührungsereignisse?

Dies ist, was ich zu Test tat:

  1. ich ein neues Projekt (Unity 5.0.2f) - 2D
  2. Ich habe eine UI-Schaltfläche und ein Textfeld auf die Szene
  3. Ich füge ein Skript, das nach dem Klicken auf die Schaltfläche ausgelöst wird - es ändert nur den Text des Textfelds auf "Clicked" --- >>> ALLE WERKE FINE, tippen die Schaltfläche auf dem Touchscreen funktioniert wie erwartet, der Text wurde geändert < < < ---
  4. Ich importiere Googles Carboard SDK --- >>> NO TOUCH EVENT FUNKTIONIERT! Klicken Sie Handler ausgelöst nie < < < ---
  5. Ich lösche Google Pappe SDK --- >>> TAPS wieder Arbeit < < < ---

Das Skript des Klicks, die ausgelöst wird, einfach:

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class TestScript : MonoBehaviour { 

    public Text text; 

    // Use this for initialization 
    void Start() { 

    } 

    // Update is called once per frame 
    void Update() { 

    } 

    public void ButtonClicked() { 
     text.text = "Clicked!"; 
//  Application.LoadLevel ("DemoScene"); 
    } 
} 

Also im Grunde die Pappe SDK vollständig bricht die Berührungsereignisse in Unity importieren 5. Wenn ich es direkt in der Einheit testen, Mausereignisse Arbeit gut. Der Text wird geändert, auch wenn Cardboard SDK importiert wird. Hat jemand eine Idee? Mache ich etwas falsch oder ist das ein Unity Bug?

Antwort

0

In den Cardboard.SDK-Einstellungen "Tap Is Trigger" deaktivieren. Beachten Sie, dass das neue v0.5-Release dieses Problem nicht mehr aufweist.

0

In meinem Fall passiert dieses 2-Finger-Multi-Touch-Erkennungsproblem nur, wenn Sie von einer Pappszene zu einer Nicht-Pappszene wechseln.

Meine Lösung ist: Wenn Sie Szene zu Szene nicht-Karton aus Pappe Szene laden, bevor Sie LoadLevel() ausführen, deaktivieren Sie die VR-Modus in CarboardMain Spielobjekt aktiviert, unter Cardboard.cs Skript, dann führen Sie LoadLevel() aus.

ps: Wenn Sie VR-Modus deaktivieren Aktiviert vor loadLevel(), werden Sie Karton Kameras Wechsel von VR-Modus nicht-VR in einem zweiten (sichtbar, aber ab sofort) erleben, bevor Sie vollständig auf die LoadLevel springen () neue Szene. Das ist hässlich.

und meine Lösung ist,

Sie überwinden kann dies durch die Kamera deaktivieren Sie bitte zuerst, dann Sie nur den VR-Modus deaktivieren Aktiviert in CardboardMain Spielobjekt, so dass die Szenen-Schaltfluss glatt sein schien .

1

Eine andere Möglichkeit, es zu tun, können Sie die TapIsTrigger/wollen haben diese 2D-Szene im VR-Modus verwenden, halten vorausgesetzt wollen:

if(Cardboard.SDK.CardboardTriggered){ 
    //what you want to happen when the user touches the screen 
} 

Auch hier müssen Sie TapIsTrigger für diese Option eingeschaltet haben, um Arbeit.

0

Versuchen Sie folgende Schritte ausführen:

  1. MainCamera löschen
  2. Drag CarboardMain in Szene
  3. Von Prefabs/UI Ort CardboardReticle unter Hauptkamera
  4. hinzufügen Physik Raycaster zur Kamera Component
  5. hinzufügen Ereignissystem GameObject
  6. Hinzufügen von GazeInputModule-Skript zum Ereignissystem
  7. Hinzufügen des Berührungseingabemoduls zum Ereignissystem
Verwandte Themen