unity插件和dll文件有什么区别?
What is the difference between a unity plugin and a dll file?
我是 Unity 的新手,我正在尝试了解插件。我知道托管插件和本机插件之间的区别,但我不太清楚的是:
插件和dll有什么区别?我应该期望在 sdk 中找到什么才能使其在我的统一项目中可用?
非常感谢
为了扩展@Everts 评论而不是将其复制到答案中,我将在此处详细介绍
什么是插件?
对于以某种方式与游戏的其余部分集成的第三方库,这个词有些模糊。这意味着它既不受 Unity 官方支持,也不是您核心代码的一部分。它可以 "plugged" 进出而不改变其内部结构,因此它必须提供某种可以被游戏代码使用的 API。
例如,您会发现许多处理广告、通知、分析等外部服务的插件。您还会发现一些也可称为插件的开发人员工具,例如基于图块的地图编辑器诸如此类
插件有多种形式——DLL 文件就是一个例子,但一些插件实际上提供了完整的源代码以便于使用。当然,其他插件将为不同平台提供本机代码,例如 Objective-C 用于 iOS 或 .jars 用于 Android.
所以回答你的第一个问题:
- DLL 只是一个预编译的源文件,可以作为插件的一部分
- 插件是一个完整的库,可以包含多个不同格式的文件(.cs、.dll、.jar、.m 等)
使用sdk需要什么?
首先 - 文档。正如我之前所说,并且您自己也注意到了,并非所有插件都可以让您访问源代码。不幸的是,没有多少 sdk 具有广泛且对开发人员友好的文档,因此真正了解如何使用给定的 sdk 可能是一项艰巨的任务。
其次 - 代码。许多 sdk 为您提供某种 "drag & drop" 库,一个包含所有必需文件的文件夹,您只需将其添加到您的 Unity 项目中即可。我还看到使用 Unity 包的 sdk,您必须通过“资产”>“导入包”>“自定义包”导入这些包。
获得代码和文档后,就可以将其集成到您的游戏中了。我强烈建议在你的游戏中使用 abstract lyer,因为根据我的经验,你经常因为各种原因不得不更改 sdk,而且你不想每次都重写你的游戏逻辑。所以我建议将与 sdk 相关的代码封装在一个 class 中,这样当从一个广告提供商切换到另一个广告提供商时,您只需更改代码中的一个 class (并保留旧的 class 以防你需要切换回来)。
所以你基本上需要三样东西:
- 文档(自述文件或在线文档)
- 代码(预编译或源代码)
- 多功能集成
我是 Unity 的新手,我正在尝试了解插件。我知道托管插件和本机插件之间的区别,但我不太清楚的是:
插件和dll有什么区别?我应该期望在 sdk 中找到什么才能使其在我的统一项目中可用?
非常感谢
为了扩展@Everts 评论而不是将其复制到答案中,我将在此处详细介绍
什么是插件?
对于以某种方式与游戏的其余部分集成的第三方库,这个词有些模糊。这意味着它既不受 Unity 官方支持,也不是您核心代码的一部分。它可以 "plugged" 进出而不改变其内部结构,因此它必须提供某种可以被游戏代码使用的 API。
例如,您会发现许多处理广告、通知、分析等外部服务的插件。您还会发现一些也可称为插件的开发人员工具,例如基于图块的地图编辑器诸如此类
插件有多种形式——DLL 文件就是一个例子,但一些插件实际上提供了完整的源代码以便于使用。当然,其他插件将为不同平台提供本机代码,例如 Objective-C 用于 iOS 或 .jars 用于 Android.
所以回答你的第一个问题:
- DLL 只是一个预编译的源文件,可以作为插件的一部分
- 插件是一个完整的库,可以包含多个不同格式的文件(.cs、.dll、.jar、.m 等)
使用sdk需要什么?
首先 - 文档。正如我之前所说,并且您自己也注意到了,并非所有插件都可以让您访问源代码。不幸的是,没有多少 sdk 具有广泛且对开发人员友好的文档,因此真正了解如何使用给定的 sdk 可能是一项艰巨的任务。
其次 - 代码。许多 sdk 为您提供某种 "drag & drop" 库,一个包含所有必需文件的文件夹,您只需将其添加到您的 Unity 项目中即可。我还看到使用 Unity 包的 sdk,您必须通过“资产”>“导入包”>“自定义包”导入这些包。
获得代码和文档后,就可以将其集成到您的游戏中了。我强烈建议在你的游戏中使用 abstract lyer,因为根据我的经验,你经常因为各种原因不得不更改 sdk,而且你不想每次都重写你的游戏逻辑。所以我建议将与 sdk 相关的代码封装在一个 class 中,这样当从一个广告提供商切换到另一个广告提供商时,您只需更改代码中的一个 class (并保留旧的 class 以防你需要切换回来)。
所以你基本上需要三样东西:
- 文档(自述文件或在线文档)
- 代码(预编译或源代码)
- 多功能集成