1

Unity3D から Java SDK へのバインディングを作成しています。その Java SDK は、android.widget.Button を含む現在のアクティビティ (UnityPlayer.currentActivity) にビュー (RelativeLayout) を追加します。

ビューは完全に表示されますが、ユーザーがボタンをタッチまたはタップすると、ボタンの OnClickListener.onClick メソッドが呼び出されません。

ボタンのあるビューは、次のコードを使用して追加されます:

UnityPlayer.currentActivity.addContentView(view, params);

Unity はおそらくすべてのユーザー タッチ イベントをキャッチすると思います。ボタンが onClick を起動できるようにそれらを転送することは可能ですか? 別の方法はありますか?

よろしくお願いします。

編集: com.unity3d.player.UnityPlayerNativeActivity のマニフェストに追加しようとしました:

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

しかし、これまでのところ結果はありません:(

4

2 に答える 2

0

あなたの仮定は正しいです。Unity は入力をキャッチしています。Unity の代わりに入力をキャプチャする場合は、ビューを別のウィンドウ (ダイアログ) に配置するか、独自のアクティビティを作成する必要があります。どちらのオプションも独自の入力ループを作成しているため、Unity ループをオーバーライドします。

于 2014-09-09T12:25:33.077 に答える
0

私のプロジェクトの1つでこれを解決しようとしているときに、回避策を見つけました。

解決:

  1. ProxyActivity は最初に発生するアクティビティです。Android のバージョンに応じて、Activity または NativeActivity が開きます。
  2. Activiy (NativeActivity ではない) が表示されていることを確認します。ProxyActivity で変更するコード スニペット:

クラス活動 = Class.forName(classNames[0]);

^^ネイティブのものではなく、アクティビティを拡張するクラスを開くように常に強制します。

于 2013-08-16T07:23:43.883 に答える