수색…


소개

이 주제는 Unity 용 Android 플러그인을 만드는 방법에 대한 시리즈의 첫 번째 부분입니다. 플러그인을 만드는 경험이 거의없고 안드로이드 OS가 있다면 여기에서 시작하십시오.

비고

이 연재물을 통해 저는 여러분이 읽을 것을 권유하는 외부 링크를 광범위하게 사용합니다. 관련 콘텐츠의 의역 버전이 여기에 포함되지만 추가 읽기가 도움이 될 수 있습니다.


Android 플러그인으로 시작하기

현재 Unity는 네이티브 Android 코드를 호출하는 두 가지 방법을 제공합니다.

  1. Java로 원시 Android 코드를 작성하고 C #을 사용하여 이러한 Java 함수를 호출하십시오.
  2. Android OS의 일부인 함수를 직접 호출하는 C # 코드 작성

고유 코드와 상호 작용하기 위해 Unity는 몇 가지 클래스와 함수를 제공합니다.

  • AndroidJavaObject - 이것은 유니 코드가 원시 코드와 상호 작용할 수 있도록 제공하는 기본 클래스입니다. 네이티브 코드에서 반환 된 거의 모든 객체는 and로 저장할 수 있습니다. AndroidJavaObject
  • AndroidJavaClass - AndroidJavaObject 에서 상속됩니다. 네이티브 코드의 클래스를 참조하는 데 사용됩니다.
  • 네이티브 객체의 인스턴스의 Get / Set 값과 정적 GetStatic / SetStatic 버전
  • 네이티브 비 정적 및 정적 함수를 호출하려면 Call / CallStatic 호출


플러그인 작성 및 용어 개요

  1. Android Studio 에서 원시 Java 코드 작성
  2. JAR / AAR 파일에서 코드 내보내기 ( JAR 파일AAR 파일의 경우 여기 단계)
  3. JAR / AAR 파일을 Assets / Plugins / Android 에서 Unity 프로젝트로 복사하십시오.
  4. 플러그인에서 함수를 호출하기 위해 Unity에서 코드를 작성하십시오 (C #은 항상 여기로 가야했습니다).

처음 세 단계는 네이티브 플러그인을 원한다면 적용됩니다!

여기서는 JAR / AAR 파일을 네이티브 플러그인 으로 참조하고 C # 스크립트를 C # 래퍼로 사용합니다.



플러그인 생성 방법 선택하기

플러그인을 만드는 첫 번째 방법이 오래 동안 길다는 것이 즉각적으로 드러났으므로 경로를 선택하는 것이 문제가 아닌 것처럼 보입니다. 그러나 방법 1은 사용자 지정 코드를 호출하는 유일한 방법입니다. 그래서, 어떻게 선택합니까?

간단히 말해서, 플러그인은 무엇입니까?

  1. 사용자 정의 코드 포함 - 방법 1 선택
  2. 기본 Android 기능 만 호출 하시겠습니까? - 방법 2 선택

두 가지 방법을 사용하여 "혼합"(즉, 방법 1을 사용하는 플러그인의 일부와 방법 2를 사용하는 다른 플러그인)을 시도하지 마십시오 ! 전적으로 가능하지만 관리하기가 종종 어렵고 고통 스럽습니다.

UnityAndroidPlugin.cs

Unity에서 새로운 C # 스크립트를 만들고 그 내용을 다음과 바꾸십시오

using UnityEngine;
using System.Collections;

public static class UnityAndroidPlugin {

}

UnityAndroidNative.java

Android Studio에서 새 Java 클래스를 만들고 내용을 다음과 같이 바꿉니다.

package com.axs.unityandroidplugin;
import android.util.Log;
import android.widget.Toast;
import android.app.ActivityManager;
import android.content.Context;


public class UnityAndroidNative {


}

UnityAndroidPluginGUI.cs

Unity에서 새로운 C # 스크립트를 만들고이 내용을 붙여 넣습니다.

using UnityEngine;
using System.Collections;

public class UnityAndroidPluginGUI : MonoBehaviour {

    void OnGUI () {
        
    }

}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow