Version: 2022.3
言語: 日本語
マネージ UWP プラグインの使用
ネイティブ UWP プラグインの作成

ネイティブ UWP プラグインの呼び出しと実装

ネイティブのユニバーサル Windows プラットフォーム (UWP) プラグインを呼び出して実装するには、Unity 用のネイティブプラグインを作成する方法を知る必要があります。ネイティブプラグインとその使用に関する詳細は、ネイティブプラグイン を参照してください。

IL2CPP スクリプティングバックエンドは、P/Invoke メカニズムを用いたネイティブブラグインの使用をサポートしています。つまり、C# コード からネイティブプラグイン内に直接呼び出しを行うことができます。これを行うには、ネイティブ関数プロトタイプを指定して呼び出します。

以下の例は、ネイティブプラグインを実装し、それを C# スクリプトから呼び出す方法を示すものです。

  1. Unity プロジェクト内に新しい .cpp ファイルを作成し、以下のネイティブプラグインコードを挿入します。

        extern "C" __declspec(dllexport)
            int __stdcall CountLettersInString(wchar_t* str)
            {
                int length = 0;
                while (*str++ != nullptr)
                    length++;
                return length;
            }
    
  2. 新しい C# スクリプトを作成し、その内容を以下のコードに置き換えます。

    [DllImport("MyPlugin.dll")]
        private static extern int CountLettersInString([MarshalAs(UnmanagedType.LPWStr)]string str);
    
        private void Start()
        {
            Debug.Log(CountLettersInString("Hello, native plug-in!"));
        }
    
  3. シーン内のゲームオブジェクトにコンポーネントを追加し、再生モードを開始します。コンソールに 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!"));
        }
    }
    

その他の参考資料

マネージ UWP プラグインの使用
ネイティブ UWP プラグインの作成