sdk - unity插件和dll文件有什么区别?

标签 sdk unity-game-engine

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

插件和dll有什么区别?我应该在 SDK 中找到什么才能使其在我的 Unity 项目中可用?

非常感谢

最佳答案

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

什么是插件?

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

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

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

回答你的第一个问题:

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

使用 SDK 需要什么?

首先 - 文档。就像我之前说过的,就像您自己注意到的那样,并非所有插件都可以让您访问源代码。不幸的是,没有多少 SDK 拥有广泛且对开发人员友好的文档,因此真正了解如何使用给定的 SDK 可能是一项艰巨的任务。

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

获得代码和文档后,就可以将其集成到您的游戏中了。我强烈建议您在游戏中使用抽象层,因为根据我的经验,您经常需要因各种原因更改 SDK,并且您不想每次都重写游戏逻辑。因此,我建议将 sdk 相关代码封装在一个类中,这样当从一个广告提供商切换到另一个广告提供商时,您只需更改代码中的一个类(并保留旧类,以防需要切换回来)。

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

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

关于sdk - unity插件和dll文件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48442851/

相关文章:

sorting - Unity - 对来自同一预制件的对象交织在一起的层进行排序

unity-game-engine - 谈论GameObject和组件,逻辑是什么?

c# - Unity如何 "power bounce"一个物体从另一个物体相对于它的角度?

Android tableview 在 titanium Appcelerator SDK 7.5.0 上崩溃

android - 程序类型已经存在 : org. apache.oltu.oauth2.common.OAuth$HttpMethod

android - 使用 facebook android sdk 应用程序崩溃 API 4 登录

java - Intellij IDEA 同一个项目中的多种语言

android - 在 Oculus GO 触摸板上滑动会触发不应有的 UI 点击

java - android java sdk,将书签加载到微调器中?

unity-game-engine - 将 Canvas 与主相机相匹配 - Unity