Unity3D 启动其他App 之 iOS

Unity3D 启动其他App 之 iOS,第1张

需要在info.plist里面做如升清好下配置:

在ios9以后,需要吵铅在info.plist文件中添加 LSApplicationQueriesSchemes(白名单),才能合法启动你想要启动的那正握个app。白名单中添加的,是你想要启动的app的 URL(这个URL就是上面讲解的“注册自己的URL”)。

首先看一下我找到的一些游戏启动过程相关的类

接下来我们分析一下游戏启动的 *** 作流程。

 ApplicationMgr

对象应该绑定到了一个场景对象中,这个场景应该在游戏启动中加载; 

ApplicationMgr:Awake()被

Unity引擎自动调用;  调用ApplicationMgr:Initialize(),在这个函数中顺序调用

了以下成员函数来进行初始化: 

InitializeMode():设置模式

为 ApplicationMode.PUBLIC

; 

InitializeUnity():设置了UnityEngine. Application 的一些属性;

 InitializeGame()

:看来核心的内容在这里,初亏掘始化 Network,GameMgr等;  InitializeWindowTitle();  InitializeOptionValues()

游戏启动应该不只这点东西。由于我们纯靠程序集的动态分析,无法知道它的场景编辑、对象的脚本绑定,也不能跟踪调试,所以只能靠猜测了。另外,一些事件是通过网络消息触发的手坦,这也给静态分析带来了一些难度。 OK,我们继续。我注意到了class Login,它从Scene派生。查看了一下Scene的派生类还有不少,我猜测每个派生类,作为特定Scene逻辑处理的脚本。而Login应该是在第0个场景中被激活运行。我们看一下Login:Start(),这属于MonoBehavior自动调用,他主要做了这样几件事:  注册了一些资源版本检测、Login相关的网络消息回调;  通知SceneMgr场景加载完成;  调用成员函数:AutoLogin();此函数调用Network.AutoLogin();  从配置文件中找到 User Name,然后调用 ConnectAPI.AutoLogin()——奇怪的是发现这个函数只是简单的返回false,并没有进行实际的 *** 作。 我们在来看一下Login:Update(),这个也是属于被自动调用的脚本函数。在这里它检测了Login的状态,并调用了成员函数LoginOk(),而它有主要调用了AssetsVersionCheckCompleted(),这个函数内容很丰富:  通知其他模块,已经登录成功,包括:BaseUI、 InactivePlayerKicker、HealthyGamingMgr、毕空桐GameMgr;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12355093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存