1

我正在将 Unity3D 绑定到 Java SDK。该 Java SDK 向当前 Activity (UnityPlayer.currentActivity) 添加了一个 View (RelativeLayout),其中包含一个 android.widget.Button。

视图完美显示,但当用户触摸/点击按钮时,不会调用按钮的 OnClickListener.onClick 方法。

使用以下代码添加带有按钮的视图:

UnityPlayer.currentActivity.addContentView(view, params);

我认为 Unity 可能会捕获所有用户触摸事件。是否可以转发它们以便 Button 可以触发 onClick ?还有其他方法吗?

在此先感谢您的帮助。

编辑:我试图在我的清单中添加 com.unity3d.player.UnityPlayerNativeActivity :

<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />

但到目前为止还没有结果:(

4

2 回答 2

0

您的假设是正确的,Unity 正在捕捉输入。如果您想捕获输入而不是 Unity - 您必须将视图放入单独的窗口(对话框),或创建自己的 Activity。这两个选项都创建了自己的输入循环,因此覆盖了 Unity 循环。

于 2014-09-09T12:25:33.077 回答
0

在我的一个项目中尝试解决这个问题时,我确实找到了一种解决方法。

解决方案:

  1. ProxyActivity 是第一个出现的活动。这将打开 Activity 或 NativeActivity,具体取决于 android 版本。
  2. 确保显示了 Activiy(而不是 NativeActivity)。在 ProxyActivity 中更改的代码片段:

班级活动 = Class.forName(classNames[0]);

^^ 总是强制它打开扩展 Activity 而不是 Native 的类。

于 2013-08-16T07:23:43.883 回答