游戏
当前位置:游戏 > 新闻快报 > 国内游戏新闻 >

环信IM Unity SDK 2.0正式发布 大大提升开发效率 (2)

环信IM Unity SDK 2.0正式发布 大大提升开发效率 (2)
2021-08-25 15:33:09

开发概览:非托管插件开发(Native/Unmanaged Plugin)

Unity是基于Microsoft .Net Framework开发的游戏引擎2,它采用了开源的.NET Platform,并依赖此框架来实现跨硬件设备和运行时(操作系统)的目标,也是所谓的”Write once, run anywhere”。在语言方面,Unity选择C#作为主要的脚本编程语言,虽然.NET平台本身支持的语言有很多种。

进一步,Unity支持Mono和ILC2PP两种脚本框架(Scripting Backends)。特别的,Unity Editor采用的是Mono脚本框架。

一般的,游戏类库开发者可以选择直接用C#语言开发,目标类库可以实现基于.NETFramework基础功能之上的高级功能,这类插件称之为ManagedPlugin(托管插件)。由于环信IM核心SDK已经基于C++开发,因此我们选择另一种NativePlugin(本地插件)的方式,正是它把我们引向了迷宫之旅。两种类型的Plugin介绍,参见3。

不幸的是,Unity网站上关于NativePlugin的相关介绍少只又少,想要了解它的具体细节还要去参考MicrosoftMSDN文档。作为中规中矩的文档介绍,微软的文档是合格的,但是,当你真正上手编程时就会发现,这些远远不够:下面记录的一些坑点就很难在相应的文档中得到直接的提示;而要通过Google大法,结合其他程序员留下的蛛丝马迹,再加上自己不断的调试来最终确认。

在微软文档上下文中,Unity Native Plugin有个另外的名字:Unmanaged Plugin,即非托管插件。简单来讲,Managed Plugin生存在.NET Framework的运行时环境(类似于Java的JVM),而Unmanaged Plugin则生存在这个运行时环境之外,也即和运行时环境是兄弟的关系。如果你原本的类库实现满足微软的COM(Component Object Model)规范,那自然最好是使用COM Interop4的互操作方式;而环信IM SDK本身是纯C++实现,因此采用了Platform Invoke5(简称P/Invoke)方式,本文剩下的内容均是基于P/Invoke。

关键词:

相关报道:

    关闭
     

    网易暴雪游戏运营团队辟谣:国服数据丢失等均为谣言!

    24-04-30 10:29:05网易暴雪游戏运营团队辟谣

    《艾尔登法环:黄金树之影》新视觉图公开!

    24-04-28 11:24:56艾尔登法环,黄金树之影

    《命运2》宣布取消“武器日落”政策,老武器全面回归

    24-04-26 14:05:25命运2,武器日落,老武器全面回归,终焉之形

    《关于我转生变成史莱姆这档事 坦派斯特开拓谭》Steam页面上线 8月8日发售

    24-04-26 14:03:32关于我转生变成史莱姆这档事 坦派斯特开拓谭

    讯飞星火大模型V3.5春季上新 V4.0 将于6月27日发布!

    24-04-26 14:02:01讯飞星火大模型,讯飞星火

    百度:AI专利申请量、授权量国内第一!

    24-04-26 13:59:45百度,AI专利,国内第一

    《盖瑞的模组》应任天堂要求清除侵权Mod!

    24-04-26 13:52:25盖瑞的模组,删除任天堂相关Mod