前回のエントリに続き、Unity側の手順。
尚、今回の設定値等は前回の設定値と対応している。
- Unity Hubを起動し、任意のバージョンのUnityでプロジェクトを作成する。
※この例では"2020.2.4f1"
- [2D]を選択、任意のプロジェクト名を指定し、<作成>をクリック。
※この例では"UniAndLink"。ちなみになんでネーミングにブレがあるかというと、それほど深く考えて作らなかったから(ノ∀`)
- Unityが起動したら、[ファイル]-[ビルド設定]の順に選択。
- 「Build Setting」タブが表示されたら、[App Bundleをビルド]、[開発ビルド]、[スクリプトデバッグ]を有効にし、
をクリック。 ※ここは実機デバッグをしない場合は必要ないかも(ノ∀`) [App Bundleをビルド]はそもそもこんな実験プログラムでは必要ないか。
- プラットフォームの切り替え処理が終了したら、<プレイヤー設定>をクリック。
- 「Project Settings」タブが表示されたら、[企業名]に任意の値を指定。
※今もDefaultCompanyだとビルド出来ないのかどうか不明(ノ∀`) もしかしたら変えなくてもいいかも。
- [最低 API レベル]を"Android 10.0(API level 29)"、[スクリプティングバックエンド]を"IL2CPP"、[API 互換性レベル]を".NET 4.x"にそれれぞれ設定し、[ARM64]を有効にする。
- 「ゲーム」タブに切り替え、画面アスペクト比を"1920x1080 Portrait"を選択。
※尚、この辺の手順は実機デバッグでLogを確認する場合には必須ではない(ノ∀`)
- 「ヒエラルキー」タブ上で右クリックし、コンテキストメニューが表示されたら、[UI]-[テキスト]を選択。
※この例では作成されたTextコンポーネントを持つゲームオブジェクト名を"result"に指定。
- 「ヒエラルキー」タブ上で右クリックし、コンテキストメニューが表示されたら、[UI]-[ボタン]を選択。
- 「ヒエラルキー」タブ上で"Canvas"を選択し、インスペクターで、
Canvasコンポーネントの[レンダーモード]で"スクリーンスペース - カメラ"を選択し、[レンダーカメラ]に「ヒエラルキー」タブ上の"Main Camera"をドラッグ&ドロップ。Canvas Scalerコンポーネントの[UI スケールモード]を"画面サイズに拡大"、[参照解像度]の[X]と[Y]にそれぞれ"1080"と"1920"を指定。[マッチ]の値を"1"に。
- 「プロジェクト」タブ上でAssetsフォルダ以下にPluginsフォルダ、Pluginsフォルダ内にAndroidフォルダを作成し、そこにAndroid Studioでビルドしたプラグイン(ライブラリ)をドラッグ&ドロップ。
- 「プロジェクト」タブ上でAssetsフォルダ以下にScriptsフォルダを作成し、Scriptsフォルダ内に"C#スクリプト"を任意の名前で作成。
※この例では"CallJavaLib"
- 前項で作成したスクリプトファイルをダブルクリックし、Visual Studioが起動したら、以下の内容を入力し、保存。
※余り深く考えずに人のコードを切った貼ったしてて気が付かなかったが、これjavalibがstaticである必要もないし、PushButton()メソッドのローカル変数で良かったな(ノ∀`)(パッケージ名やクラス名を任意の値を指定している場合は適宜書き換える。特にAndroidJavaObjectをNewする際のパッケージ名を間違えないこと。)
using UnityEngine; using System.Collections.Generic; using UnityEngine.UI; public class CallJavaLib: MonoBehaviour { static AndroidJavaObject javalib = null; public static void PushButton() { Debug.Log("Pushed"); javalib = new AndroidJavaObject("com.example.uniandlib.ReturnString"); #if UNITY_ANDROID && !UNITY_EDITOR GameObject.Find("result").GetComponent<Text>().text = javalib.Call<string>("returnResult","From Unity"); #endif } }
- Textコンポーネントを持つゲームオブジェクトとButtonコンポーネントを持つゲームオブジェクトのサイズの位置を任意で変更する。
※この辺は正直適当で良い(ノ∀`)
- Textコンポーネントの[フォントサイズ]を"50"、[色]を黄色に指定する。
- 作成したスクリプトをButtonコンポーネントを持つゲームオブジェクトにドラッグ&ドロップ。
- ドラッグ&ドロップしたスクリプトが追加されていることを確認し、Buttonコンポーネントの[クリック時]の<+>をクリック。
- Buttonコンポーネントの[クリック時]のオブジェクト欄に「ヒエラルキー」タブ上のButtonをドラッグ&ドロップ。
- Buttonコンポーネントの[クリック時]の関数欄から[追加したスクリプトファイル]-[ボタン押下時に実行させたいメソッド]の順で選択。
※この例では"CallJavaLib"の"PushButton()"。
- 実機に接続し、「Build Settings」タブの<ビルドして実行>をクリック。
- aabの名前を指定して<保存>をクリック。
- 問題がなければ、実機上で以下のように表示され、ボタンをクリックすると、Javaライブラリ上で指定した文字列が追加されTextコンポーネント上で表示される。
内容的に大したことをしていないが、取り敢えず、Javaプラグインの初歩の使い方は理解出来たので良しとしよう(・∀・)
久しぶりに手順みたいなのを作ったから、色々と瑕疵がある(ノ∀`)
コメントを投稿するにはログインしてください。