Unity 如何调用 iOS 小组件

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

先理下思路:

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值