facebook twitter hatena line email

「Unity/Native連携」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
(同じ利用者による、間の29版が非表示)
行1: 行1:
=Android-Unity連携=
+
[[Unity/Native連携/Android連携]]
==android側でaarライブラリを作成==
+
以下の"aarライブラリ作成項目を確認してaarファイルを作成する
+
  
[[Android/開発環境/AndroidStudio/aarライブラリ作成読込方法]] [ショートカット]
+
[[Unity/Native連携/Kotlin連携]]
  
<pre>
+
[[Unity/Native連携/Swift連携]]
package com.example.mylibrary.renkeilib;
+
import android.util.Log;
+
public class UnityRenkei {
+
    public static boolean teststatic(boolean flag) {
+
        return flag;
+
    }
+
    public boolean test(boolean flag) {
+
        return flag;
+
    }
+
    public void testexec() {
+
        Log.i("test", "testexec");
+
    }
+
}
+
</pre>
+
  
==Android-unity連携する==
+
[[Unity/Native連携/Kotlinバックグランドアラーム]]
#aarをAssets/Plugins/Android/の下に配置する
+
#以下コードを実行する
+
  
<pre>
+
[[Unity/Native連携/Kotlinバックグランド通知]]
using UnityEngine;
+
using System.Collections;
+
public class ExampleClass : MonoBehaviour
+
{
+
    [SerializeField] Button button;
+
    void Start()
+
    {
+
        button.onClick.AddListener(CallMethod);
+
    }
+
    void CallMethod()
+
    {
+
#if UNITY_ANDROID && !UNITY_EDITOR
+
        try
+
        {
+
            AndroidJavaObject jo = new AndroidJavaObject("com.example.mylibrary.UnityRenkei");
+
            bool flag = jo.Call<bool>("test", true);
+
            bool flagstatic = jo.CallStatic<bool>("teststatic", true);
+
            bool flagfalse = jo.Call<bool>("test", false);
+
            bool flagstaticfalse = jo.CallStatic<bool>("teststatic", false);
+
            jo.Call("testexec");
+
            Debug.Log("flag=" + flag);
+
            Debug.Log("flagstatic=" + flagstatic);
+
            Debug.Log("flagfalse=" + flagfalse);
+
            Debug.Log("flagstaticfalse=" + flagstaticfalse);
+
        }
+
        catch (System.Exception e)
+
        {
+
            Debug.LogError("Failed to call Android method: " + e.Message);
+
        }
+
#endif
+
    }
+
}
+
</pre>
+
このように表示されればとりあえず成功。Android実機のみで、UnityEditorだと動作しないので注意。
+
<pre>
+
I Unity   : flag=True
+
I Unity  : (Filename: ./Runtime/Export/Debug.bindings.h Line: 43)
+
I Unity  : flagstatic=True
+
I Unity  : (Filename: ./Runtime/Export/Debug.bindings.h Line: 43)
+
I Unity  : flagfalse=False
+
I Unity  : (Filename: ./Runtime/Export/Debug.bindings.h Line: 43)
+
I Unity  : flagstaticfalse=False
+
I Unity  : (Filename: ./Runtime/Export/Debug.bindings.h Line: 43)
+
</pre>
+
  
==com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicateエラーが起こったとき==
+
[[Unity/Native連携/Swiftバックグランド通知]]
コピーミスなどにより、Assetrs/Plugins/Android/classes.jarがあるとクラスが2重となっている可能性がある。
+
一旦classes.jarを消してみる。
+
 
+
==参考==
+
AndroidJavaObject公式:https://docs.unity3d.com/ja/current/ScriptReference/AndroidJavaObject.html
+
Unity-Android-Plugin:https://qiita.com/keidroid/items/455c61de9355eff2a907
+
 
+
=iOS-Unity連携=
+

2024年9月11日 (水) 17:16時点における最新版

Unity/Native連携/Android連携

Unity/Native連携/Kotlin連携

Unity/Native連携/Swift連携

Unity/Native連携/Kotlinバックグランドアラーム

Unity/Native連携/Kotlinバックグランド通知

Unity/Native連携/Swiftバックグランド通知