我有一个2D场景,应该显示可用的纸板场景列表(如缩略图)。 用户点击缩略图后,我试图将他发送到选定的纸板场景。 但是,我无法捕捉第一个(列表)场景中的触摸事件。点击后,没有任何反应,简单地说。 (编辑:我将补充说我只在Android上测试过这个)
这就是我要做的测试:
- 我创建了一个新项目(Unity 5.0.2f) - 2D
- 我将UI按钮和文本字段放到场景中
- 我添加了一个在单击按钮后触发的脚本 - 它只是将文本字段的文本更改为" Clicked" --->>>所有工作都很精细,点击触摸屏上的按钮按预期工作,文本已更改<<< ---
- 我导入了Google的Carboard SDK --->>>没有触摸事件的工作!点击处理程序永远不会触发<<<< ---
- 我删除了Google的Cardboard SDK --->>> TAPS再次工作<<< ---
醇>
触发的点击脚本很简单:
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错误吗?
答案 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)
请尝试按照以下步骤操作: