UnityでAndroid JARファイルを呼び出す最も簡単な方法

最近、Unityなゲームアプリ増えてますね。この手のワンソースマルチプラットフォーム対応ゲームエンジンは、広告などネイティブで実装しなくちゃならない部分が面倒だったりします。というわけで、UnityからJavaのJARファイルを呼び出す最も簡単な方法を紹介します。

JARファイルの配置

/Assets/Plugins/Android ディレクトリに目的のJARファイルを配置します。その他リソースファイルが必要であればそれも同じように配置します(assetsなど)。

アクティビティなどでAndroidManifest.xmlが必要な場合は、それも配置します。もし、他のプラグインでも使う場合は、必要な部分をマージして一つのマニフェストにまとめます。

こんな感じです。

JARを呼び出すC#スクリプトを作る

次に、JARのクラスを呼び出すためのC#スクリプトを書きます。

using UnityEngine;
using System.Collections;

public class  HogeObserver : MonoBehaviour {
	
	void Start () {
		//呼び出すJARのパッケージ名を指定
		AndroidJavaClass plugin = new AndroidJavaClass("jp.example.AppController");
		AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
		AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
		//JARのメソッドを指定する
		plugin.CallStatic("show", activity);
	}
}

このスクリプトを /Assets/Plugins に作成します。その後、適当なシーンに関連付けることで完成です。ものすごく簡単ですね。iOSは…もうちょっと面倒です。

UnityからJavaネイティブコードを呼び出す方法は、JNIとかいくつかあるけれど、JARで呼び出すだけなら、こっちの方が楽です。

Feed

最新記事

No image thumb

ベーシックのライフワークバランスのおはなし

## はじめに こんにちは。ベーシック開発部山形ラボの[@hi-co](https://github.com/hi-co)です。 **山形ラボとは**…弊社開発部拠点の一つ。2018年9月現在、山形県在住のエンジニア4名が勤...

16531118?v=4
hi-co
2018年09月18日

【スライド】RSpecを始める前に僕が知りたかったRSpec概論

# はじめまして 2016年新卒エンジニアの白木宏朋です。 弊社3年目で色んなサービスを渡り歩いているのですが、 社内のいろんなサービスのテストコードに触れて、 RSpecが柔軟にいろんな書き方ができるあまり、 ...

7361719?v=4
namitop
2018年09月14日

Rails + MongoDBのクエリ速度の改善をやってみた話

こんにちは エンジニア の [@len](https://twitter.com/DucNv226) です。現在、弊社のサービスの一つである [ferret One](https://ferret-one.com/) と [One...

4339187?v=4
DucNguyenVan
2018年09月10日