UnityからAndroid Javaのインスタンスメソッドを呼び出す

UnityからAndroidのネイティブコードを呼び出すのは、かなり簡単…なんだけど、Staticじゃないインスタンスメソッドを呼び出すには、なんかちょっと一工夫必要だったので、メモ。

↓参考

UnityでAndroid JARファイルを呼び出す最も簡単な方法 - Androidネイティブプラグイン

Staticなメソッドを呼び出すには、単に CallStatic() すれば良いのだけど、インスタンスメソッドの場合は、当然インスタンス化しなくてはならないので、インスタンスを返すだけのStaticメソッドを用意。それを AndroidJavaObject として受け取って、Call() するだけ。

Unityスクリプト

AndroidJavaClass plugin = new AndroidJavaClass("jp.example.Hoge");
AndroidJavaObject jo = plugin.CallStatic<AndroidJavaObject>("instance");
jo.Call("piyo");

Java

class Hoge {
	public static Hoge instance() {
		return new Hoge();
	}
	
	public void piyo() {
	}
}

これだけで、UnityからJavaのインスタンスメソッドを呼び出せます。

Feed

最新記事

開発フローを独自進化させ続けている開発チームの話

こんにちは CTO の [@zaru](https://twitter.com/zaru) です。 スクラム開発をしている開発チームが、開発フローを独自進化させていて、それが良い取り組みだったので紹介しようと思います。 #...

235650?v=4
zaru
2017年11月20日

退職者を招いたLTイベントを開催した

こんにちは、ベーシック CTO [@zaru](https://twitter.com/zaru) です。 ベーシック開発部では毎月月末の金曜日にTGIFと称して、 ~~飲み会 + アナログゲームなイベント~~ 技術 LT 大会...

235650?v=4
zaru
2017年10月12日

山形ラボ、TGIFはじめました

こんにちは。株式会社ベーシック山形ラボの長谷川です。 いろんなところで書いたりなんだりしてますが、弊社には山形に「山形ラボ」というリモート拠点がありまして、そこで4人のエンジニアが働いております。 今回は その山形ラボで、...

10917612?v=4
roki1801
2017年10月10日