336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
유니티3D 안드로이드(Android) 플러그인(Plugin) 만들기(추가)
[UNITY] 안드로이드 플러그인 만들기 에 추가적으로 하나더 써보려고 합니다.
Java 코드단에서 UnityPlayerActivity를 상속 받는 곳에서 구현을 했었는데,
그게 아닌 타 클래스 만들어서 하는 부분도 추가합니다.
Java에서 타 클래스를 만들고 구현을 한 다음 Unity에서 클래스를 찾아서 호출하면 됩니다.
간단히 예를 들겠습니다.
< Java >
1. 프로젝트 만들고(패키지명은 원하시는걸로), 클래스를 하나 추가합니다.
여기에서는 TestAClass가 새로 생성한 클래스 입니다.
2. 기본 클래스 파일입니다. UnityPlayerActivity를 상속해 줍니다.
* UnityPlayerActivity상속없이 자바 클래스만 추가해서 되는지는 아직 못해봤네요. 혹 해보신분 댓글로 부탁드립니다.
3. 유니티애서 호출할 클래스 입니다.
간단히 GetSum()이라는 함수만 추가하겠습니다.
< Unity >
* 우선 AndroidManifest.xml 확인해주세요. 많은 분들이 패키지명이 달라서 안된경우가 많았습니다.
using UnityEngine; using System.Collections; public class PluginCalling : MonoBehaviour { private static AndroidJavaObject myObj; string messge = "init"; // Use this for initialization void Start () { #if UNITY_ANDROID && !UNITY_EDITOR myObj = new AndroidJavaObject( "com.mine.androidplugin.TestAClass" ); #endif } // Update is called once per frame void Update () { } void OnGUI() { // 이렇게 접근하는 방법은, static이나 non-static 모두 // 동일한 방법으로 접근 가능하다 if (GUI.Button(new Rect(100, 100, 100, 50), "GetSum")) { #if UNITY_ANDROID && !UNITY_EDITOR messge += ("\n" + myObj.Call("GetSum", 123, 456).ToString()); #endif } GUI.Label(new Rect(Screen.width / 2 - 350, Screen.height / 2 - 150, 700, 300), messge); } }
별거 없네요. 그냥 AndroidJavaObject로 오브젝트 생성하고 호출하는 것 입니다.
도움되셨길 바랍니다.
'게임 프로그래밍 > 유니티' 카테고리의 다른 글
[Unity3D] Mac 에셋번들(asset bundle) 오류 (0) | 2018.01.02 |
---|---|
[Unity3D] 안드로이드 플러그인 만들기(안드로이드 스튜디오 2.3.3) (68) | 2017.08.23 |
[UNITY] FTP로 파일 업로드하기. (4) | 2016.07.12 |
[UNITY] 4 에셋번들 만들기 및 사용 (0) | 2016.07.10 |
[UNITY] 유니티 광고 붙이기 (2) | 2016.07.03 |