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

7
我有一个2D场景,用于显示可用的纸板场景列表(类似缩略图)。用户点击缩略图后,我想将其发送到所选的纸板场景。然而,在第一个(列表)场景中,我无法捕获触摸事件。简单来说,点击后什么也不会发生。(编辑:我只在Android上测试过)
这是我的测试步骤:
1.我创建了一个新项目(Unity 5.0.2f)- 2D
2.我在场景中放置了一个UI按钮和一个文本框
3.我添加了一个脚本,当点击按钮时触发它-它只是将文本框的文本更改为“Clicked” --->>>所有操作都正常工作,触摸屏幕上的按钮按预期工作,文本已更改<<<---
4.我导入谷歌的Cardboard SDK --->>>没有任何触摸事件起作用!点击处理程序永远不会被触发<<<---
5.我删除了谷歌的Cardboard 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");
    }
}

基本上,导入Cardboard SDK会完全破坏Unity 5中的触摸事件。如果我直接在Unity中测试它,鼠标事件就能正常工作。即使导入Cardboard SDK后,文本也会更改。有人有什么想法吗?我是做错了什么还是这是Unity的一个错误?

4个回答

1

如果你想保留TapIsTrigger / 在VR模式下使用这个2D场景,另一种方法是使用:

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

同样地,您需要勾选TapIsTrigger才能使其起作用。


0

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

  1. 删除 MainCamera
  2. 将 CarboardMain 拖入场景中
  3. 从 Prefabs/UI 中将 CardboardReticle 放置在 Main Camera 下方
  4. 将 Physics Raycaster 添加到 Main Camera 组件中
  5. 添加 Event System GameObject
  6. 将 GazeInputModule 脚本添加到 Event System 中
  7. 将 Touch Input Module 添加到 Event System 中

0

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


0
在我的情况下,这个双指多点触控检测问题只会在从纸板场景切换到非纸板场景时发生。
我的解决方案是:当你想要从纸板场景加载场景到非纸板场景时,在执行LoadLevel()之前,先禁用Cardboard.cs脚本下的CarboardMain游戏对象中的VR Mode Enabled,然后再执行LoadLevel()。
附注:当你在loadLevel()之前关闭VR Mode Enabled时,你会看到Cardboard相机从VR模式转换为非VR模式(可见但瞬间),然后才完全跳转到LoadLevel()新场景。这很丑陋。
而我的解决方案是,
你可以通过先禁用相机,然后再关闭CardboardMain游戏对象中的VR Mode Enabled来克服这个问题,这样场景切换流程就会显得更加平滑。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接