“ [DllImport(” __ Internal“)]”“-” __Internal“是什么意思?

zam*_*tul 6 c# dllimport unity-game-engine

我正在为iOS游戏而团结。要解锁成就,我需要从我的C#代码中访问“ Achievement.mm”文件:

    [DllImport("__Internal")]
    private static extern void
       GKAchievement(string achievementID, float progress, bool value);
Run Code Online (Sandbox Code Playgroud)

我从一个论坛获得了这段代码。但是,“ __ Internal”是什么意思?

Raz*_*lez 5

  • 插件使用将其代码链接到C#unity [DllImport()]
  • __internal是用于特定平台(例如XBoxiOS)所需的静态链接的关键字。
  • 其他平台通常使用动态链接,因此不需要。

有关更多信息,请参阅:https : //docs.unity3d.com/Manual/NativePlugins.html


pro*_*sti 5

只是小提示。

如果正在加载的库是__Internal,则在主程序中搜索方法符号。这恰好是 iOS 平台上的情况。

iOS 上的插件无法动态加载。正如@RaxelZ 解释的那样,只是静态的。

OSX、Windows、Android 则不同……这些平台可能会动态加载插件。对于 iOS,仅静态。