集成Unity3D到iOS应用程序中
(资料图)
+ (UnityFramework*)getInstance; 单例类方法,可将实例返回到 UnityFramework。- (UnityAppController*)appController; 返回 UIApplicationDelegate 的 UnityAppController 子类。这是原生端的根 Unity 类,可以访问应用程序的视图相关对象,例如 UIView、UIViewControllers、CADisplayLink 或 DisplayConnection。- (void)setDataBundleId:(const char*)bundleId; 设置捆绑包,Unity 运行时应在其中查找 Data 文件夹。有关更多信息,请参阅 Data 文件夹的相关文档。应在调用 runUIApplicationMainWithArgc 或 runEmbeddedWithArgc 之前调用此方法。- (void)runUIApplicationMainWithArgc:(int)argc argv:(char*[])argv; 从没有其他视图的主要方法中运行 Unity 的默认方式。制作iOS静态库1.先创建一个UnityCallNative类,可以在iOS项目中创建。UnityCallNative.h中定义声明一个供unity调用原生的方法,注意这里的方法定义必须使用C语法。UnityCallNative.m中实现.h中定义的接口,注意实现的地方是除@implementation-end只外的地方,也就是直接把@implementation-end以及中间的内容都删除,然后使用C语言来实现,C语言的调用部分可以使用OC实现。比如:UnityCallNative.h文件声明方法
extern "C" {void outputAppendString("test1", "test2");}UnityCallNative.m文件实现方法
void outputAppendString(string str1, string str2) {....}2.将完成后的UnityCallNative类添加到Unity项目中在Unity的Project/Asserts/Plugins/ios/目录下添加这2个文件。3.通过Unity项目File-Buile Settings-iOS-Build 重新构建出新的Unity-iPhone项目4.把Data资源文件夹,UnityCallNative.h 的Target MemberShips 设置到UnityFromework下(打勾),同时把UnityCallNative.h作用域设置成public5.构建UnityFramework工程,生成静态库6.把UnityFramework静态库导入到iOS工程中,同时在General-Libaray,Frameworkd设置成Embed&SignUnity3D与iOS原生交互Unity3D调iOS1.在Unity的脚本文件中使用原生项目暴露的方法Unit3D中新建一个脚本文件,引入交互服务。
using System.Runtime.InteropServices; public class ChangeLabel : MonoBehaviour{[DllImport("__Internal")]static extern void outputAppendString(string str1, string str2); // 声明ios原生定义的C方法 void Start() {#if UNITY_IPHONEoutputAppendString("test1", "test2"); // 调用ios原生定义的C方法#endif}}iOS原生调用Unity3D原生调Unity3D通过下面这一句函数就够了。举个例子 :
UnitySendMessage("UIChargeMoneyPage", "callback", "0");在UnityInterface.h声明中声明了下面的函数
UnitySendMessage(const char * GameObjectName, const char *methodName, const char *msg);GameObjectName: Unity场景中的游戏对象methodName: 游戏对象下绑定的脚本中的函数名msg:函数的参数
另外:
UnityInterface.h文件是Unity导出的iOS项目中包含的。在发送消息到Unity前,要确保成功导入了UnityInterface.h文件。参考文章:https://docs.unity3d.com/cn/2021.1/Manual/UnityasaLibrary-iOS.htmlhttps://juejin.cn/post/6844903933790388231https://blog.51cto.com/myselfdream/2559580https://blog.51cto.com/myselfdream/2559599https://blog.csdn.net/weixin_42714258/article/details/122454019相关阅读
精彩推荐
- 集成Unity3D到iOS应用程序中
- 接管公司合同范本(优选16篇)_全球视讯
- 海外网评:中欧经贸合作春意盎然-天天通讯
- 永茂泰: 永茂泰2022年度独立董事述职报告(张志勇) 焦点滚动
- 市场日报 | 医药、光热发电大爆发;地产股走高,通信板块崛起,千亿巨头盘中涨停!
- 百度健康与广州东方略达成战略合作
- 超图软件:与阿里云的技术和业务合作紧密|环球快看点
- 线上超市大战:抖音点火 猫超、美团、京东接招
- 快手理想家与七彩云南·古滇名城达成合作 探索文旅+直播卖房新模式
- 今亮点!网络安全上“保险”?方滨兴院士:将推动社会安全能力正向发展
- 天天视点!“变形金刚”抗生素可对抗致命感染
- 广电运通:目前公司正在就AI大模型相关技术进行深入研讨
- 全球微速讯:华北石油一季度天然气新井产量同比增长36%
- CCTD:北港库存再创新高
- 【当前独家】甘肃雨雪天气告一段落 多地仍有霜冻
- 竞技观察丨中职篮,期待越赛越精彩
- 931家公司拟派现近万亿,A股分红或创纪录!
- 英镑/美元行情综述(2023年4月6日)
- elsevier数据库怎么导出参考文献_elsevier数据库-环球快播
- 焦点!小米13 Ultra就要来了:小米王化亲自曝光
- 建业地产2023年前3个月物业合同销售总额60.28亿元 最新资讯
- 北京邮电大学世纪学院艺术与传媒学院简介(2023版) 每日观点
- 河北省城镇街道居家养老服务中心覆盖率达到100%
- 世界今日报丨房款提前还款怎么算 房贷提前还款的三种情况是什么?
- 山东黄金涨9.18%,中泰证券六日前给出“买入”评级
- 红宝丽:吴一鸣先生辞去担任的公司董事职务-观点
- Facebook将关闭其游戏流媒体应用
- 以岭药业:化药创新药“G201Na胶囊”临床试验申请获批 全球热头条
- 世界微速讯:三人篮球亚洲杯:积累大赛经验 争取奥运积分
- 全球快看点丨居民出游热度持续走高 清明假期国内旅游预计收入65.20亿元