2015-05-22 3 views
7

У меня есть 2D-сцена, которая должна показывать список доступных картонных сцен (например, миниатюр). После того, как пользователь нажимает миниатюру, я пытаюсь отправить его на выбранную карточную сцену. Однако я не могу поймать события касания в первой (списке) сцене. После крана ничего не происходит, просто положите. (EDIT: Я добавлю, что я проверил это только на Android)Использование SDK Cardboard в Unity 5 - нет событий касания?

Это то, что я сделал тест:

  1. создать новый проект (Unity 5.0.2f) - 2D
  2. Я положил кнопку UI и текстовое поле на сцену
  3. Я добавляю скрипт, который запускается после нажатия кнопки - он просто меняет текст текстового поля на «Щелкнуть» --- >>> ВСЕ РАБОТЫ FINE, постукивая кнопка на сенсорном экране работает как ожидалось, текст изменен < < < ---
  4. Я импортирую карточку SDK от Google --- >>> НЕТ РАБОТАТЬ СОБЫТИЙ! Нажми обработчик никогда не запускается < < < ---
  5. Я удаляю Google картонного SDK --- >>> СТО РАБОТЫ СНОВА < < < ---

Сценарий щелчка, который запускается просто:

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

Так в основном импортировавшее Картонная SDK полных разрывов сенсорных событий в Unity 5. Если я проверить его непосредственно в единстве, событие мыши работайте хорошо. Текст изменяется, даже когда импортируется Cardboard SDK. У кого-нибудь есть идея? Я что-то делаю неправильно или это ошибка Unity?

ответ

0

Отключите «Tap Is Trigger» в настройках Cardboard.SDK. Обратите внимание: новая версия v0.5 больше не имеет этой проблемы.

0

В моем случае эта проблема с двумя пальцами с несколькими касаниями возникает только при переключении с картонной сцены на некартонную сцену.

Моего решения: Когда вы хотите загрузить сцену из картона сцены не-картонных сцены, прежде чем выполнить LoadLevel(), отключить VR Mode Enabled в CarboardMain игрового объекта, под Cardboard.cs скрипт, тогда вы выполняете LoadLevel().

пс: При выключении VR Mode Enabled перед тем loadLevel(), вы будете испытывать Картонный камеры переход от режима VR на не-VR в секунду (видимый, но мгновенно), прежде чем полностью перейти к LoadLevel () новая сцена. Это уродливо.

И мое решение,

Вы можете преодолеть это отключить камеру, а затем только вы выключите режим VR Enabled в CardboardMain игрового объекте, поэтому сцена коммутации поток будет появляться гладким ,

1

Другой способ сделать это, если вы хотите сохранить TapIsTrigger/хотите, чтобы это 2D сцены в режиме VR заключается в использовании:

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

Опять же, вы должны иметь TapIsTrigger галочка для этого Работа.

0

Попробуйте выполнить следующие действия:

  1. Удалить MainCamera
  2. Drag CarboardMain в сцене
  3. От Prefabs/UI место CardboardReticle под Main Camera
  4. Добавить Physics Raycaster в основной компонент камеры
  5. Добавить Event System GameObject
  6. Добавить скрипт GazeInputModule для системы событий
  7. Добавить сенсорный модуль ввода в систему событий
Смежные вопросы