[Unity][IOS] Creating an IOS Plugin for Unity

koo00·2022년 8월 16일
0

Unity Plugin

목록 보기
4/4

유니티에서 iOS 플러그인을 만들고 사용하는 방법에 관한 포스팅이다.
테스트 환경은 다음과 같으며 지난 번에 사용한 프로젝트를 동일하게 활용할 예정이다.
Unity 2021.3.5f1 / XCode 13.4.1 / iOS 14.4

Create a new XCode Project > Static Library > Objective-C 선택 후 프로젝트를 생성한다.

프로젝트가 생성되면 코드를 대충 작성한다. 나는 디폴트로 생성된 LibTest.m 파일에 작성했지만 c 파일을 새로 생성해도 무관하다.
m 파일에서는 Objective-C 뿐만 아니라 C 코드를 작성해도 된다.

#import "LibTest.h"

@implementation LibTest

int LibTestFunc() {
    return 999;
}

@end


암튼 Build 에 성공하면 Product > Show Build Folder in Finder > Products > Debug-iphoneos > libLibTest.a 파일이 존재하면 준비 끝!


유니티에서 샘플 프로젝트 대충 만들어주고 Plugins 폴더 하나 만들어서 해당 폴더에 라이브러리 파일을 넣어준다.

Plugin 클래스를 하나 만들어주고 다음과 같이 작성한다. 안드로이드와 다른 점은 [DllImport("__Internal")] 을 통해 라이브러리 내 함수를 사용한다는 것이다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;

public class LibTestPlugin
{
#if UNITY_IOS
    [DllImport("__Internal")]
    private static extern int LibTestFunc();

    public static int TestFunc()
    {
        return LibTestFunc();
    }
#endif
}


함수를 사용할 C# 클래스도 하나 만들어준다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static LibTestPlugin;

public class NewBehaviourScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log(LibTestPlugin.TestFunc().ToString());
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}


컴포넌트를 추가한 뒤 빌드 후 실행시키면 로그에 999 가 찍히는 것을 볼 수 있다.

profile
JFDI !

0개의 댓글