[Unity] 안드로이드 플러그인 (Android Plugin JAR, AAR)

Dev W·2024년 10월 10일
0

unity

목록 보기
3/5

1. Android 프로젝트 생성

빈 프로젝트를 생성한다.

Name, Package name을 변경하고,
Mininum SDK를 설정한다.
(유니티에 설정된 버전과 동일해야 한다.)

2. Module 생성

File -> New -> New Module로 새 모듈을 생성한다.

Android Library를 선택하고 Module name을 입력한다.

3. 유니티 classes.jar 추가

유니티 폴더 경로에서 classes.jar 파일을 찾는다.

유니티폴더\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes

plugin에 libs 폴더를 만들고 classes.jar 파일을 복사한다.

4. Gradle 파일 수정

plugin의 Gradle 파일에 .jar 파일에 대한 컴파일을 추가한다.

compileOnly(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))

5. UnityPlugin 클래스 작성

package com.mrw0119.plugin;

import android.app.Activity;
import android.widget.Toast;

import com.unity3d.player.UnityPlayer;

public class UnityPlugin
{
    private static UnityPlugin _instance;
    private static Activity _context;

    public static UnityPlugin instance()
    {
        if (_instance == null) {
            _instance = new UnityPlugin();
            _context = UnityPlayer.currentActivity;
        }
        return _instance;
    }
    
    public void showToast(String text)
    {
        _context.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(_context, text, Toast.LENGTH_LONG).show();
            }
        });
    }
}

6. Module 빌드

Build -> Make Module 모듈을 빌드한다.

build 폴더에 aar 파일이 생성된 것을 확인할 수 있다.

aar 파일을 유니티의 plugins 폴더로 복사한다.

7. 유니티 스크립트 작성

유니티 테스트용 스크립트를 작성한다.

using UnityEngine;
using UnityEngine.UI;

public class AndroidPluginSample : MonoBehaviour
{
    public AndroidJavaObject PluginInstance { get; private set; }

    public Button toastButton;

    void Awake()
    {
        var pluginClass = new AndroidJavaClass("com.mrw0119.plugin.UnityPlugin");

        PluginInstance = pluginClass.CallStatic<AndroidJavaObject>("instance");

        toastButton.onClick.AddListener(OnToastClick);
    }

    void OnToastClick()
    {
        PluginInstance.Call("showToast", "!!!TEST!!!");
    }
}

UI 버튼을 만들고 스크립트를 연결한다.

8. 빌드 테스트

Minimum API Version을 맞춰주고 Android 빌드한다.

0개의 댓글

관련 채용 정보