LoginSignup
0
0

More than 1 year has passed since last update.

UnityPlayerActivity

Last updated at Posted at 2021-03-19

●Unityプラグインは複数の方法がある

(1)UnityPlayerActivityファイルを拡張する
UnityPlayerActivity.javaを使ってUnityプラグインを作る。
準備:

image.png

UnityPlayerActivity.java/classes.jarはUnityExportしたProjectにもある。

Unity向けAndroidネイティブプラグインの作り方

build.gradleを編集して、プラグインにclasses.jarを含めないようにする。含めるとUnity側のclasses.jarと衝突する。

dependencies {
//    implementation files('libs\\classes.jar')
//    implementation fileTree(dir: "libs", include: ["*.jar"])
    compileOnly fileTree(dir: 'libs', include: ['*.jar'])

#UnityでAndroid拡張を行うベストプラクティス

final Activity activity = UnityPlayer.currentActivity; で、UnityPlayerActivityを継承しなくてもOK



Unityマルチスレッドレンダリングは外す

image.png

低レベルネイティブプラグインインターフェース

Unity のレンダリングは、プラットフォームと CPU の数が一定の条件を満たす場合は、マルチスレッドで行われます。マルチスレッドのレンダリングが使用されるとき、レンダリング API の命令は、MonoBehaviour スクリプトを実行するスレッドとは完全に別の 1 つのスレッド上で行われます。そのため、プラグインがいくつかのレンダリングを即座に開始することが常に可能ではありません。なぜなら、その時レンダースレッドが行っている処理に干渉する場合があるからです。

Unity2018以降(?)はマルチスレッドレンダリングがデフォルト。OpenGLES描画は GL.IssuePluginEvent(GetRenderEventFunc(), 1);経由で行う事。

参考

Androidネイティブ開発のすすめ
https://qiita.com/relzx/items/a35f7ab6dbacb48f7e26

UnityでAndroidのネイティブプラグインを使用する3つの方法
https://qiita.com/tempura/items/5e7992896c0faba08da3

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0