代码之家  ›  专栏  ›  技术社区  ›  David

unity插件和dll文件之间有什么区别?

  •  2
  • David  · 技术社区  · 7 年前

    我是Unity的新手,我正在尝试理解插件。我已经了解了托管插件和本机插件的区别,但我不太清楚的是:

    插件和dll之间有什么区别?为了使sdk在我的unity项目中可用,我应该在sdk中找到什么?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  3
  •   Dunno    7 年前

    为了扩展@Everts评论,而不仅仅是将其复制到答案中,我将在这里详细介绍一下

    什么是插件?

    这是一个有点模糊的词,指的是以某种方式与游戏其余部分集成的第三方库。这意味着它既不是Unity的官方支持,也不是您核心代码的一部分。它可以“插入”或“退出”,而不改变其内部结构,因此它必须提供某种可供游戏代码使用的API。

    例如,您会发现许多处理外部服务的插件,如广告、通知、分析等。您还会发现一些开发人员工具,也可以称为插件,如基于平铺的地图编辑器等。

    插件有多种形式——DLL文件就是一个例子,但有些插件实际上提供了完整的源代码,以便于使用。当然,其他插件将为不同的平台提供本机代码,如用于iOS的Objective-C或。Android的罐子。

    因此,要回答您的第一个问题:

    • DLL只是一个预编译的源文件,可以作为插件的一部分
    • 插件是一个完整的库,可以由多个不同格式的文件组成(.cs、.dll、.jar、.m等)

    使用sdk需要什么?

    首先是文档。正如我之前所说,正如你自己所注意到的,并不是所有的插件都能让你访问源代码。不幸的是,没有多少sdk具有广泛且对开发人员友好的文档,因此要真正理解如何使用给定的sdk可能是一项艰巨的任务。

    第二,代码。许多SDK为您提供了某种“拖放”库,一个包含所有必需文件的文件夹,您只需将其添加到Unity项目中即可。我还看到SDK使用Unity软件包,您必须通过资产导入这些软件包>导入包(>);自定义包。

    一旦你有了代码和文档,就应该将其与游戏集成。我强烈建议您在游戏中使用抽象lyer,因为根据我的经验,您经常需要出于各种原因更改SDK,并且不希望每次都重写游戏逻辑。因此,我建议将与sdk相关的代码封装在一个类中,以便在从一个广告提供商切换到另一个广告提供商时,只需更改代码中的一个类(并保留旧类,以防需要切换回来)。

    所以你基本上需要三件事:

    1. 文档(自述文件或在线文档)
    2. 代码(预编译或源代码)
    3. 多功能集成