2015-05-22 32 views
7

Kullanılabilir karton sahnelerin bir listesini (küçük resimler gibi) göstermesi beklenen bir 2B sahnem var. Kullanıcı bir küçük resme dokunduktan sonra, onu seçili karton sahnesine göndermeye çalışıyorum. Ancak, ilk (liste) sahnede dokunma olaylarını yakalayamıyorum. Bir musluktan sonra, hiçbir şey olmuyor, sadece koy. (Düzeltme: Ben bu yalnızca Android üzerinde test olduğunu katacak): Unity 5'de Cardboard SDK'sını kullanma - dokunma olayları yok mu?

  1. Ben yeni bir proje (Birlik 5.0.2f) oluşturmak - 2D
  2. Bu Testten bunları yaptık Sahneye bir UI düğmesi ve bir metin alanı koydum

  3. Düğmeye tıkladıktan sonra tetiklenen bir komut dosyası ekliyorum - sadece metin alanının metnini "Tıklanan" olarak değiştirir --- >>> TÜM ÇALIŞMALAR FINE, dokunarak Dokunmatik ekranda buton beklendiği gibi çalışıyor, metin değişti < < < ---
  4. Google'ın Carboard SDK'sını 'dan içe aktarıyorum --- >>> NO DOUCH OLAY İŞLERİ! Click işleyicisi < < < ---
  5. Google'ın Karton SDK --- >>> MUSLUK TEKRAR İŞ silme hiç devreye girmemiş < < < ---

tetiklenir tıklama senaryo basittir:

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"); 
    } 
} 

Ben birlik doğrudan test ederse Yani temelde Unity 5. karton SDK tam sonları dokunmatik olaylar ithal fare olayları iyi çalış. Karton SDK içe aktarıldığında bile metin değiştirilir. Kimsenin bir fikri var mı? Yanlış bir şey mi yapıyorum yoksa bu birlik hatası mı?

cevap

0

Cardboard.SDK ayarlarında "Dokunma Hatası'na" dokunun. Not, yeni v0.5 sürümünün artık bu sorunu yok.

0

Benim durumumda, bu 2 parmakla çoklu dokunuşla algılanan sorun yalnızca karton sahnesinden karton dışı sahnesine geçiş yaptığınızda gerçekleşir.

Benim Çözüm: Eğer LoadLevel() yürütmek önce olmayan karton olay yerine karton sahneden sahneyi yüklemek istediğinizde, Cardboard.cs altında VR Modu CarboardMain oyun nesnesine Etkin devre dışı komut dosyası, daha sonra LoadLevel() çalıştırırsınız.

ps: Eğer loadLevel() önce Etkin VR Modu kapattığınızda tamamen (LoadLevel atlamadan önce, sen (anında görünür ama) ikinci olmayan VR VR modundan Karton kameraları değişim yaşayacaksınız) yeni sahne. Bu çirkin.

VE benim çözüm,

Bu tarafından daha sonra sadece CardboardMain oyun nesnesine Etkin VR Modu kapatmak, bu nedenle sahneleri-anahtarlama akımı pürüzsüz göründü olacak, ilk kamerayı devre dışı üstesinden gelebilir

.

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

Yine, TapIsTrigger bunun için işaretli olması gerekir:

1

olduğu başka bir yol VR Modu Bu 2D sahne var isteyen TapIsTrigger/tutmak istiyorum kullanmaktır varsayarak, bunu yapmak için iş.

0

aşağıdaki adımları deneyin:

  1. MainCamera Sil
  2. Ana Kamera
  3. Ana Kamera Bileşeni için Fizik raycaster ekle
  4. Ekle altında Prefabs/UI yer CardboardReticle itibaren Sahne
  5. içine
  6. Drag CarboardMain Olay Sistemi GameObject
  7. Olay Sistemine GazeInputModule Komut Dosyası Ekle
  8. Dokunmatik Giriş Modülünü Olay Sistemine Ekleme