在Unity 5中使用Cardboard SDK - 没有触摸事件?

时间:2015-05-22 03:05:20

标签: android unity3d google-cardboard

我有一个2D场景,应该显示可用的纸板场景列表(如缩略图)。 用户点击缩略图后,我试图将他发送到选定的纸板场景。 但是,我无法捕捉第一个(列表)场景中的触摸事件。点击后,没有任何反应,简单地说。 (编辑:我将补充说我只在Android上测试过这个)

这就是我要做的测试:

  
      
  1. 我创建了一个新项目(Unity 5.0.2f) - 2D
  2.   
  3. 我将UI按钮和文本字段放到场景中
  4.   
  5. 我添加了一个在单击按钮后触发的脚本 - 它只是将文本字段的文本更改为" Clicked"   --->>>所有工作都很精细,点击触摸屏上的按钮按预期工作,文本已更改<<< ---
  6.   
  7. 我导入了Google的Carboard SDK   --->>>没有触摸事件的工作!点击处理程序永远不会触发<<<< ---
  8.   
  9. 我删除了Google的Cardboard SDK   --->>> TAPS再次工作<<< ---
  10.   

触发的点击脚本很简单:

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

因此,基本上导入Cardboard SDK完全打破了Unity 5中的触摸事件。如果我直接以统一方式测试它,鼠标事件就可以正常工作。即使导入Cardboard SDK,文本也会更改。有人有点想法吗?我做错了什么或者这是一个Unity错误吗?

4 个答案:

答案 0 :(得分:1)

另一种方法,假设你想要保持TapIsTrigger /想要在VR模式下拥有这个2D场景是使用:

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

同样,您需要勾选TapIsTrigger才能使其正常工作。

答案 1 :(得分:0)

在Cardboard.SDK设置中关闭“Tap Is Trigger”。请注意,新的v0.5版本不再存在此问题。

答案 2 :(得分:0)

在我的情况下,只有当您从纸板场景切换到非纸板场景时,才会发生这种双指多触摸检测问题。

我的解决方案是:如果要将场景从Cardboard场景加载到非Cardboard场景,在执行LoadLevel()之前,请在 CarboardMain 中禁用 VR模式已启用游戏对象,在 Cardboard.cs 脚本下,然后执行LoadLevel()。

ps:当您在loadLevel()之前关闭 VR模式已启用时,您将体验到Cardboard相机在完全跳转之前在一秒内(可见但立即)从VR模式更改为非VR模式到LoadLevel()新场景。这太丑了。

我的解决方案是,

您可以先禁用相机来解决此问题,然后只关闭CardboardMain游戏对象中启用的VR模式,这样场景切换流程就会顺畅显示。

答案 3 :(得分:0)

请尝试按照以下步骤操作:

  1. 删除MainCamera
  2. 将CarboardMain拖入场景
  3. 来自Prefabs / UI的主摄像机下的CardboardReticle
  4. 将物理Raycaster添加到主摄像机组件
  5. 添加事件系统GameObject
  6. 将GazeInputModule脚本添加到事件系统
  7. 将触控输入模块添加到事件系统