Android Studio安卓導出aar包與Unity 3D交互


Unity與安卓aar 包交互


本文提供全流程,中文翻譯。

Chinar 堅持將簡單的生活方式,帶給世人!

(擁有更好的閱讀體驗 —— 高分辨率用戶請根據需求調整網頁縮放比例)



Chinar —— 心分享、心創新!

助力快速理兩者 aar 包方式的交互

為新手節省寶貴的時間,避免采坑!


Chinar 教程效果:



全文高清圖片,點擊即可放大觀看 (很多人竟然不知道)


1

Create Android Module —— 創建安卓庫模塊


該過程,於新手來講較為繁瑣

另外導出 jar、arr 包創建 Module 的流程都一樣

在此,為了便於新手理解

Chinar 直接提供另一個教程,專門做創建
舉個栗子黑白88
請跳轉 —— 安卓與Unity交互之-Android Studio創建Module庫模塊教程


2

Write Code in MainActivtity —— 在 Activity 中寫代碼


至此,所有的准備工作都已經做完!

我們在 Android Studio 安卓開發端,寫2個 Android 端方法

然后,我們在 Unity 端寫一個方法,測試通過安卓這邊調用
舉個栗子黑白88
這里寫圖片描述
安卓端代碼如下:

package kim.unity.mylibrary;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);//注銷掉這句,顯示界面用的
    }


    //測試Android Studio的A方法,等待Unity調用
    //這里用中文名稱當方法名,是為了便於理解。自己寫,請不要用中文!
    public String 安卓方法A(String a,String b){return a+b;}


    //測試Android Studio的B方法,等待Unity調用
    public int 安卓方法B(int a,int b)
    {
        安卓端調用UnityMethodA();//調用下方方法
         return a+b;
    }


    //這是安卓調用Unity端的方法
    public void 安卓端調用UnityMethodA()
    {
        //UnityPlayer類中的靜態方法
        //UnitySendMessage向Unity發送消息,
        //(Unity掛載腳本的物體,具體哪個方法,傳入參數“安卓端調用”)
        UnityPlayer.UnitySendMessage("Main Camera","UnityMethodA","安卓端調用");
    }
}

3

Create C# Script —— 在 Unity中創建一個C#腳本


我們在 Unity 端寫一個方法,通過安卓來調用

腳本掛在、主相機 Main Camera
舉個栗子黑白88
Unity端代碼如下:(腳本掛在主相機上)

using UnityEngine;
using UnityEngine.UI;


/// <summary>
/// 測試類,掛載相機上
/// </summary>
public class Chinar : MonoBehaviour
{
    public  Text              TextUp;   //上方文本框
    public  Text              TextDown; //下方文本框
    private AndroidJavaObject jo;       //私有jo對象


    void Start()
    {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //固定寫法
        //固定寫法、獲取當前對象;返回一個 AndroidJavaObject對象
        //jo代表安卓當中的 當前MainActivity對象 
        jo              = jc.GetStatic<AndroidJavaObject>("currentActivity");
        string strCallA = jo.Call<string>("安卓方法A", "第一形參", "第二形參"); //用Call方法,去調用安卓端方法A
        TextUp.text     = strCallA;                                             //輸出到文本框
        int strCallB    = jo.Call<int>("安卓方法B", 333, 333);                  //調用安卓端方法B
        TextUp.text     += "\n" + strCallB.ToString();                          //換行,輸出到文本框
    }


    /// <summary>
    /// 這是Unity項目中的方法A
    /// </summary>
    /// <param name="a"></param>
    public void UnityMethodA(string a)
    {
        TextDown.text = a;
    }
}

4

Create Unity UI —— 在 Unity中創建簡單的UI


注意:

由於通過 Android Studio 寫的代碼,在 Unity 中測試、調用,是會報錯的

只有打包 APK ,並安裝到手機上才可以測試!

我們簡單的做一個 UI,創建一個 UI文本框,來測試輸出
舉個栗子黑白88
這里寫圖片描述


5

Make Module —— 構造庫模塊


回到 Android Studio ,選中我們創建的庫 mylibrary

菜單欄點擊 Build →→然后 Make Module 完成庫模塊的制作

另外,准備好我們下一步需要做的修改。
舉個栗子黑白88
這里寫圖片描述


6

Export jar Package —— 導出 jar 包到Unity中


至此,准備工作全部做好!

下面,就要進入主題,開始完成 aar 包的導出到 Unity

從而與達到 Unity 交互
舉個栗子黑白88


1. —— 切換到Project工程視圖,找到我們需要的文件


注意:

切換到 Project 工程目錄視圖

找到我們需要的 aar 文件,然后右鍵 Show in Explorer 從外部打開

然后我們在外部對文件稍作修改后才能導入到 Unity
舉個栗子黑白88
這里寫圖片描述


2. —— 解壓 mylibrary-debug.aar 文件並修改


aar 格式,用 rar 等壓縮文件直接打開即可

切換到 Project 工程目錄視圖

找到我們需要的 aar 文件,然后右鍵 Show in Explorer 從外部打開

然后我們在外部對文件稍作修改后才能導入到 Unity
舉個栗子黑白88
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述


3. —— 修改外部AndroidManifest.xml,並導入Unity


工程目錄視圖,找打黃色的 mainifests / full / debug

同樣通過 Show in Explorer 外部打開

記事本/ 或 Sublime Text 打開這里寫圖片描述,修改包名

不會/想要安裝 Sublime Text 的朋友請↓↓

Sublime Text 3(中文)在Windows下的配置、安裝、運行
舉個栗子黑白88
這里寫圖片描述
這里寫圖片描述


7

PlayerSettings —— Unity打包App之前的設置


注意:

更改下 PlayerSettings 中的 Package Name

需要與 AndroidManifest.xml 中的包名保持一致
舉個栗子黑白88
這里寫圖片描述


8

Build And Run —— Unity打包App測試


注意:

不能 Build And Run 是由於沒有安裝對應的安卓 StudioUSB 驅動

步驟對於新手來講,較為麻煩。以后我會專門寫博客來講解流程

這里修改后包名后,直接打包成 APK 包即可!

將打包的 App 這里寫圖片描述拷貝到手機中,並且安裝測試
舉個栗子黑白88
這里寫圖片描述

至此:安卓與 Unity 導出 jar 交互操作完美結束!


9

Summarize ——總結


提示:

其實安卓導出aar 包與 Unity 交互的操作很簡單

這里我寫的比較細致,只是怕新接觸的朋友,采坑出錯

一步步跟着我的做,即可完美完成!

多練習 3-5次,寫好方法后,導包其實十幾秒都能走一遍流程!


支持

May Be —— 搞開發,總有一天要做的事!


擁有自己的服務器,無需再找攻略!

Chinar 提供一站式教程,閉眼式創建!

為新手節省寶貴時間,避免采坑!


先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)


1 —— 雲服務器超全購買流程 (新手必備!)

2 —— 阿里ECS雲服務器自定義配置 - 購買教程(新手必備!)

3—— Windows 服務器配置、運行、建站一條龍 !

4 —— Linux 服務器配置、運行、建站一條龍 !





Chinar


END

本博客為非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究

對於需要復制、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯系,留言,Email: ichinar@icloud.com

對於經本博主明確授權和許可使用文章及內容的,使用時請注明文章或內容出處並注明網址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM