2015-10-16 22 views
21

React NativeとUnityを組み合わせた経験がある人はいますか?非常にUI重いUnityプロジェクトを開始しようとしています。私はReact Nativeを使用してモバイルとWeb上のUI機能を利用することを考えています。ユニティとネイティブを反応させる

私はこのようなアプローチのワークフローが何であるか不思議です。

+2

これを試しましたか(正常に終了しましたか? – swalkner

+0

私もこれについて興味があります! – leMale

答えて

3

それはそのコアクラスをレンダリングするためのココアタッチを使用している場合、私は、ユニティゲームがiOS用に構築された方法などわからないんです。それがない、とあなたがアクセスまたはのUIViewControllerをレンダリングする能力を持っている場合は

、あなたは、あなたのネイティブアプリケーションに反応レンダリングすることができます。あなたが容易にしなければならないのは、2つのアプリケーション間の通信をセットアップすることだけです。

ネイティブUIコンポーネントをReactネイティブアプリ内でレンダリングする例を示します。 http://moduscreate.com/leverage-existing-ios-views-react-native-app/

7

最後に、多くの試行後、これを行うことができました。これらはステップです。

  • 1)このlinkを使用して、アンドロイドプロジェクトfor Gradleをエクスポートします。 Build SettingsウィンドウでGradleを選択し、Export Projectチェックボックスをオンにします。 [エクスポート]をクリックし、保存先フォルダを選択します。
  • 2)Androidスタジオで生成されたフォルダをインポートします。メッセージが表示されたら、[OK]このプロセスでは、次の問題が発生します。
  • 2a)org.gradle.api.internal.tasksの問題のために、Gradle Syncが失敗しました。これはlink
  • 3)が、これはlink
  • 4)このlinkを使用してAndroidは内部作成したフォルダをエクスポート反応し統合ネイティブアプリを起動し使用してネイティブアプリケーションと反応の作成使用して解決します。 Androidスタジオが何度も何度も尋ねるように、Gradleをアップグレードしないでください。以下の問題が発生します。ここで#5で終わるまで、「テストインテグレーション」を実行しないでください。
  • 4a)mavenを設定している間、maven url "$ rootDir /../ node_modules/react-native/android"にこのurlを使用します。
  • 図4b)あなたはjavax.injectに関連する問題が発生した場合は、Mavenを構成中:javax.injectを依存関係との競合「com.google.code "。このlinkを使用し
  • 図4c)にも、このエラーが発生する可能性があります"。このリンクのコード統合セクションでは、次のセクションに焦点を当てています。React Native用のスターターキットを使用している場合は、 "HelloWorld"文字列を次のように置き換えます。
  • 5)「統合をテストする」セクションに進む前に、あなたのindex.android.jsファイルの中の1つ(これはAppRegistry.registerComponent()メソッドの最初の引数です) UnityActivityからMyReactActivityを呼び出すコードを追加する必要があります。これはlinkが役に立ちます。
  • 6)#4で提供されているリンクの「統合をテストする」セクションに進みます。以下の問題が発生することがあります。
  • 6a)アセットからスクリプトを読み込むことができません。index.android.bundle。これはlinkを使用してください。
  • 6b)アンドロイドで開発サーバーに接続できませんでした。これはlinkを使用してください。
0

私は好奇心が強いですし、Androidでこれを行う方法の例プロジェクト:https://github.com/marijnz/unity-reactを作成しました。

これは実行可能なオプションである場合は、少なくともによって異なります

  • プロジェクトが実行されますどのくらいの期間、両方が反応し、Unityが更新する必要があり、これはおそらく、時間をかけて厳しい取得します。
  • プロジェクトに存在するsdk /依存関係の量。
  • iOSも同様にしたい場合。

一般的に、私はおそらくこのようにしないでください。 例はかなりシンプルに見えますが、Shaunakの答えがすでに示唆しているように、それに到達するのは苦痛でした))

関連する問題