7

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

这就是我所做的测试:

  1. 我创建了一个新项目(Unity 5.0.2f) - 2D
  2. 我在场景中放置了一个 UI 按钮和一个文本字段
  3. 我添加了一个在单击按钮后触发的脚本 - 它只是将文本字段的文本更改为“已单击”--->>> ALL WORKS FINE,点击触摸屏上的按钮按预期工作,文本已更改 <<< ---
  4. 我导入了 Google 的 Carboard SDK --->>> NO TOUCH EVENT WORKS!点击处理程序从未触发 <<<---
  5. 我删除了 Google 的 Cardboard SDK --->>> TAPS WORK AGAIN <<<---

触发点击的脚本很简单:

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

4 回答 4

1

另一种方法是使用:

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

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

于 2015-07-29T22:15:05.823 回答
0

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

于 2015-05-29T05:37:50.553 回答
0

就我而言,仅当您从纸板场景切换到非纸板场景时,才会发生这种 2 指多点触控检测问题。

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

ps:当你在 loadLevel() 之前关闭VR Mode Enabled时,你会在完全跳转到 LoadLevel() 新场景之前,体验 Cardboard 相机在一秒钟内从 VR 模式变为非 VR 模式(可见但立即)。这很丑陋。

我的解决方案是,

您可以通过先禁用相机来克服这个问题,然后只需在 CardboardMain 游戏对象中关闭 VR Mode Enabled,这样场景切换流程就会显得流畅。

于 2015-06-12T06:13:53.877 回答
0

尝试按照以下步骤操作:

  1. 删除主摄像头
  2. 将 CarboardMain 拖入场景
  3. 从 Prefabs/UI 将 CardboardReticle 放置在 Main Camera 下
  4. 将物理 Raycaster 添加到主相机组件
  5. 添加事件系统游戏对象
  6. 将 GazeInputModule 脚本添加到事件系统
  7. 将触摸输入模块添加到事件系统
于 2016-04-22T19:49:15.213 回答