네이티브 UWP(유니버설 Windows 플랫폼) 플러그인을 호출 및 구현하려면 Unity용 네이티브 플러그인 생성 방법에 대해 알아야 합니다.네이티브 플러그인과 사용에 대한 자세한 내용은 네이티브 플러그인을 참조하십시오.
IL2CPP 스크립팅 백엔드는 네이티브 플러그인용 플랫폼 호출 메커니즘을 지원합니다.즉, C# 코드에서 바로 네이티브 플러그인을 호출할 수 있습니다.이렇게 하려면 네이티브 함수 프로토타입을 지정한 다음 호출합니다.
다음 예시는 C# 스크립트에서 네이티브 플러그인을 구현하고 호출하는 방법을 보여줍니다.
Unity 프로젝트에서 새 .cpp 파일을 생성하고 다음 네이티브 플러그인 코드에 삽입합니다.
extern "C" __declspec(dllexport)
int __stdcall CountLettersInString(wchar_t* str)
{
int length = 0;
while (*str++ != nullptr)
length++;
return length;
}
새 C# 스크립트를 생성하고 콘텐츠를 다음 코드로 바꿉니다.
[DllImport("MyPlugin.dll")]
private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
private void Start()
{
Debug.Log(CountLettersInString("Hello, native plug-in!"));
}
씬의 게임 오브젝트에 컴포넌트를 추가하고 플레이 모드를 시작합니다.콘솔은 22를 출력하게 됩니다.
using UnityEngine;
public class ExamplePlugin :MonoBehaviour
{
[DllImport("MyPlugin.dll")]
private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
private void Start()
{
Debug.Log(CountLettersInString("Hello, native plug-in!"));
}
}
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.