ユーザ用ツール

サイト用ツール

wiki:unity:tips:086

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

wiki:unity:tips:086 [2014/11/13 11:37]
127.0.0.1 外部編集
wiki:unity:tips:086 [2020/10/28 00:41] (現在)
step
ライン 1: ライン 1:
 ====== 086 UnityからJavaの関数を呼び出す ====== ====== 086 UnityからJavaの関数を呼び出す ======
  
-===== 概要 ===== +こちらの投稿は[[https://​kazupon.org/?​p=9666|移動]]しました
-Unity かAndroid、Javaプログラムを呼び出てみす。ライブラリの作成にはEclipseを使います+
  
  
-==== Android開発環境の構築 ==== 
-[[http://​izeef.web.fc2.com/​develop/​android/​env_eclipse.html|Android開発環境の構築 Eclipse編]]を参考にしてEclipseのAndroid開発環境を構築します。 
- 
-==== Jarライブラリを作成する ==== 
-Eclipse を起動しファイル -> 新規 -> Androidアプリケーション・プロジェクトを選択し新規アプリケーションを作成します。 
- 
-{{:​wiki:​unity:​tips:​unity_plugin_java_001.png?​300|}} 
- 
-|アプリケーション名|HelloWorld| 
-|プロジェクト名|HelloWorld| 
-|パッケージ名|plugin.helloworld| 
- 
-「カスタム・ランチャーアイコンを作成する」「アクティビティーの作成」のチェックを外し、「このプロジェクトをライブラリとしてマークする」にチェックを入れプロジェクトを作成します。 
- 
-{{:​wiki:​unity:​tips:​unity_plugin_java_002.png?​300|}} 
- 
-ソースを追加します。srcフォルダを右クリック -> 新規 -> クラスと選択しソースファイルを追加します。 
- 
-{{:​wiki:​unity:​tips:​unity_plugin_java_003.png?​300|}} 
-|パッケージ|plugin.helloworld| 
-|名前|HelloWorld| 
- 
- 
-空のHelloWorld クラスが作成されました。次はプラグインを実装していきます。 
- 
-<code java> 
-package plugin.helloworld;​ 
- 
-public class HelloWorld 
-{ 
- public HelloWorld() 
- { 
- } 
-  
- public static String getHelloWorld_Static() 
- { 
- return "Call getHelloWorld_Static() Method";​ 
- } 
-  
- public String getHelloWorld() 
- { 
- return "Call getHelloWorld() Method";​ 
- } 
-} 
-</​code>​ 
- 
-ただ文字列を返すだけの単純なプラグインです。この状態でビルドするとプロジェクトのbinフォルダにhelloworld.jar ファイルが作成されます。Eclipse 側の作業はここまでです。 
- 
- 
-==== Java プラグインの配置 ==== 
-  * Unity を起動し新規プロジェクトを作成します。HelloWorld とします。プロジェクトのツリーからCreate -> Folder と選択し「Plugins」フォルダを作成します。Plugins フォルダの中に「Android」フォルダを作成します。 
-  * 作成したAndroidフォルダに先ほど作成したhelloworld.jar ファイルを入れます。 
- 
-{{:​wiki:​unity:​tips:​unity_plugin_java_004.png?​300|}} 
- 
-==== プラグイン呼び出しスクリプトの作成 ==== 
-  * Assets/​Plugins 以下にファイルを追加します。Assets を右クリック -> Create -> C# Script と選択し、名前をHelloWorldPlugin として作成します。 
-  * HelloWorldPlugin をダブルクリックして編集します。呼び出し用の関数を作成します。 
- 
-<code java> 
-using UnityEngine;​ 
-using System.Collections;​ 
-using System; 
- 
-ublic class HelloWorldPlugin : MonoBehaviour 
-{ 
- public static String getHelloWorld_Static() 
- { 
-#if UNITY_ANDROID 
- AndroidJavaClass plugin = new AndroidJavaClass("​plugin.helloworld.HelloWorld"​);​ 
- String hello = plugin.CallStatic<​String>​("​getHelloWorld_Static"​);​ 
- return hello; 
-#endif 
- } 
-  
- public static String getHelloWorld() 
- { 
-#if UNITY_ANDROID 
- AndroidJavaObject plugin = new AndroidJavaObject("​plugin.helloworld.HelloWorld"​);​ 
- String hello = plugin.Call<​String>​("​getHelloWorld"​);​ 
- return hello; 
-#endif 
- } 
-} 
-</​code>​ 
- 
-Unity から呼び出す準備が整いました。 
- 
- 
-==== プラグインを使ってみる ==== 
-作成したHelloWorld プラグインが使用できるか試してみます。Assets フォルダにC#​ スクリプトを追加します。名前は「test」として 
-アプリケーションの中身を実装していきます。今回は動作確認さえできれば良いので、ログを出力するだけのものを実装します。 
- 
-<code csharp> 
-using UnityEngine;​ 
-using System.Collections;​ 
- 
-public class test : MonoBehaviour 
-{ 
- void Start () 
- { 
- Debug.Log ( HelloWorldPlugin.getHelloWorld() ); 
- Debug.Log ( HelloWorldPlugin.getHelloWorld_Static() ); 
- } 
- void Update () 
- { 
- } 
-} 
-</​code>​ 
-testスクリプトをHierarchy のMain Camera のドラッグ&ドロップして関連付けします。 
- 
-==== ビルドと実行 ==== 
-実際にAndroid端末にインストールして実行してみます。 
-Unity Editor ではエラーが出ますので注意して下さい。 
- 
-  * 出力されるログを確認するために、C:​\usr\local\Android\android-sdk\tools\ にあるddms.bat を実行します。 
-  * Unity のFile -> Build Setting -> Platform にAndroid を選択した状態で、Switch Platformを選択します。 
-  * 端末をUSB で接続した状態で、Build And Run でビルド/​実行します。 
- 
-{{:​wiki:​unity:​tips:​unity_plugin_java_005.png?​300|}} 
- 
-getHelloWorld() getHelloWorld_Static() 関数が呼ばれているのが確認できます。 
Permalink wiki/unity/tips/086.txt · 最終更新: 2020/10/28 00:41 by step

oeffentlich