2013-09-29 7 views
5

このトピックに記載されているのと同じ問題があります。Integrating Unity with Eclipse: Back Button Clickしかし、提案された解決策は機能しませんでした。Unity Playerから元の実行中のAndroidアクティビティに戻る方法は?

私は、ネイティブAndroidアプリケーションにUnity Playerを組み込んでいます。私はUnity Playerを問題なく起動することができますが、今度は前のボタンに戻ることにします。私はすでにUnity側からApplication.Quitを試して、アンドロイド側からfinish()して、両方ともアプリケーション全体を閉じます。私もUnityのコンテキストから新しいアクティビティを開始しようとしましたが、これはうまくいきません。これはフラグメントで作業するためです。私の活動設定は次の通りです:

いくつかの断片が埋め込まれているMainActivity。それらのうちの2つにはリストが含まれており、ここからList要素の詳細ビューを表示する新しいアクティビティを開始できます。詳細ビューは、左右にスワイプして前/次の要素にすることもできる断片です(gmailアプリに似ています)。詳細ビューの中から、Unityを起動して、Qualcomm vuforiaフレームワークでいくつかの機能拡張を行うことができます。

これまですべてが動作しますが、UnityPlayerから詳細ビューに戻ることはできません。

これを達成する方法を知っている人はいますか?

ありがとうございます!

+0

UnityのタグはMicrosoftのUnityツール用に予約されています。 Unity3Dとして記録されます。 – Jerdak

答えて

1

私は現在、断片Unity3dを含むAndroidプロジェクトに取り組んでおり、同様の問題があるようです。

私が知っている限り、それは断片的なものではありません。バックボタンのプレスイベントを傍受するような面白いことをするUnityです。私がやったことは、バックボタンが押されたときに何が起こっているのか判断するには以下のメソッドをオーバーライドした:

私が発見した問題は、私は戻ってボタンを押したときに、時には何のログメッセージが表示されていないことである - それは実際に登録されていないのIE 。最初はonResume()メソッドでUnityPlayer.pause()を呼び出すことと関係していたと思っていましたが、今朝再びプロジェクトを実行したときに問題が続くことが判明し、断続的でした。

私が解決策を考え出すと、このスレッドで投稿を編集します。私は説明が少なくともいくつかの助けになったことを願っています。


編集:Can't pass back event from Unity to android library jar

は、このリンクを見てください。ユニティプロジェクトに実装して、バックボタンの押下操作を支援するソリューションがあります。

私はそれをやったし、その後、いくつかのより多くのテストを実施し、それがUnityPlayerオブジェクトが が一時停止していないとき onBackPressed()方法は、すべての権利を呼び出されるようになります。これにより、 UnityPlayer.pause()メソッドは、アプリケーションがバックグラウンドで実行されるときにのみ使用されるべきであり、指定された時間にUnityモデルが必要ない場合には使用されないと考えられます。

4

ユニティアクティビティをバックプレスすると、プロセス全体が強制終了されます。したがって、あなたがアンドロイド活動を通じて団結活動を開始するとき、異なるプロセスで統一活動を開始してください。プロジェクトのアンドロイドマニフェストファイルでこれを宣言することでこれを行うことができます。

+0

これで解決しました。 これまで数時間、答えを探していました。あなたに感謝;) –

2

AndroidManifest.xml次のコード行でUnityActivityを追加する必要があります。Javaの:

<activity 
     android:name=".ui.activities.UnityPlayerActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" <-- THIS 
     android:process=":unityplayer" <-- AND THIS 
     ...  
    > 
     ... 
    </activity> 

それは別のプロセスとユニティコマンドのようUnityActivityを実行しますです:Application.quit();ユニティプロセスのみを終了します。

また、十分でない場合は、UnityActivytyを開始するアクティビティにこれらの行を追加できます。ただし、別のパッケージアクティビティでは、sharedPreferencesやその他のものを提供することに注意してください。

+0

魅力のように働いて、ユニティは以前の活動/アプリを殺しません。ありがとうございました – Pelanes

0

//ユニティモジュールのマニフェストに以下の2行のコードを追加してください。 UnityPlayerActivity

 android:launchMode="singleTask" 
     android:process=":unityplayer" 

と団結の下 バックボタンのクリックイベントは)(コード Application.quitの下にこれを追加します。

完全に私のために働いています

関連する問題