"[DllImport("__Internal")]" - "__Internal" 是什么意思?

"[DllImport("__Internal")]" - what does the "__Internal" mean?

我正在与 Unity 一起开发 iOS 游戏。为了解锁成就,我需要从我的 C# 代码访问一个 "Achievement.mm" 文件:

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

我从论坛上获得了这段代码。但是,“__Internal”是什么意思?

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

更多信息请参考:https://docs.unity3d.com/Manual/NativePlugins.html

只是小费。

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

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

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