最近项目遇到这个需求,头大。

先理下思路

unity 调用 iOS 的流程,我想应该大家都熟悉,也就是 C# 调用 OC 的方法百度下,成堆。

iOS 小组件,是 iOS 14.0 以后的产物。Android上早就有了。问题苹果小组件是 swift 开发的。

第一个问题来了,C# 怎么调用 swift方法???

经过一系列研究百度+Google),哈哈。最后决定 C# -> OC -> swift .

以下是研究成果(GitHub上高手如云):

下载一个 UnityIosPlugin 插件文章结束放有链接(嘿嘿)。

解压后,将UnityIosPlugin 文件夹放在 Assets/Plugins/iOS 文件夹下。毕竟是一个 Plugin 嘛。

文件夹内有 Source 和 Editor 两个文件夹

先说说 Editor 文件夹内的 SwiftPostProcess.cs

// 只需要注意和修改两行代码
// UnityPlugin-Bridging-Header.h路径由你放置 UnityIosPlugin 文件夹位置决定的
// Libraries/ 就是 Unity 工程下的 Assets/
proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_BRIDGING_HEADER", "Libraries/Plugins/iOS/UnityIosPlugin/Source/UnityPlugin-Bridging-Header.h");
// 这行就别改了
proj.SetBuildProperty(targetGuid, "SWIFT_OBJC_INTERFACE_HEADER_NAME", "UnityFramework-Swift.h");

再说说 Source 文件夹内的三个文件文件名后缀不要修改

其中  UnityPlugin-Bridging-Header.h 桥接用的,也就是swift调用oc的类的时候,将oc头文件添加这里。咱可以不用管。

然后 UnityPluginBridge.mm 主要是我们给 C# 调用的。具体的注意事项参看百度。我在里面写了两个方法,仅供参考

最后 UnityPlugin.swift 就是主要的目标文件。UnityPluginBridge里的方法调用UnityPlugin.swif方法

—————————————————————————————————————-

iOS 小组件的添加,在导出 xcode 工程后,按照流程自己添加吧。

https://assetstore.unity.com/packages/slug/240992

原文地址:https://blog.csdn.net/hururu20120502/article/details/128240406

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_45316.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注