Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Unity 5中使用硬纸板SDK-无接触事件?_Android_Unity3d_Google Cardboard - Fatal编程技术网

Android 在Unity 5中使用硬纸板SDK-无接触事件?

Android 在Unity 5中使用硬纸板SDK-无接触事件?,android,unity3d,google-cardboard,Android,Unity3d,Google Cardboard,我有一个2D场景,应该显示可用纸板场景的列表(如缩略图)。 用户点击缩略图后,我试图将其发送到所选的硬纸板场景。 但是,我无法捕捉第一个(列表)场景中的触摸事件。轻敲之后,什么也不会发生,简单地说。(编辑:我将补充说,我只在Android上测试过这个) 这就是我所做的测试: 我创建了一个新项目(Unity 5.0.2f)-2D 我在场景中放置了一个UI按钮和一个文本字段 我添加了一个在点击按钮后触发的脚本-它只是将文本字段的文本更改为“点击” --->>>所有工作正常,轻触触摸屏上的按钮按预期工

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

这就是我所做的测试:

  • 我创建了一个新项目(Unity 5.0.2f)-2D
  • 我在场景中放置了一个UI按钮和一个文本字段
  • 我添加了一个在点击按钮后触发的脚本-它只是将文本字段的文本更改为“点击”
    --->>>所有工作正常,轻触触摸屏上的按钮按预期工作,文本更改>>轻触再次工作在carboard.SDK设置中关闭“轻触触发”。请注意,新的v0.5版本不再存在此问题。

    在我的例子中,只有当您从硬纸板场景切换到非硬纸板场景时,才会出现这种双指多点触摸检测问题

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

    ps:当您在loadLevel()之前关闭启用的VR模式时,在您完全跳转到loadLevel()新场景之前,您将在一秒钟内体验到纸板相机从VR模式切换到非VR模式(可见但瞬间)。这太难看了

    我的解决方案是,


    您可以通过先禁用相机,然后只关闭CardboardMain游戏对象中启用的VR模式来克服此问题,这样场景切换流程将变得平滑。

    另一种方法是,假设您想让TapiStriger/想让此2D场景处于VR模式,请使用:

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

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

    尝试以下步骤:

  • 删除主摄像机
  • 将CarboardMain拖动到场景中
  • 从预制件/UI将卡板十字线放在主摄像机下
  • 将物理光线投射器添加到主摄影机组件
  • 添加事件系统游戏对象
  • 将GazeInputModule脚本添加到事件系统
  • 将触摸输入模块添加到事件系统
  • if(Cardboard.SDK.CardboardTriggered){
        //what you want to happen when the user touches the screen
    }