Unity发布Android端怎么让程序开机自动启动呢,急求

Unity发布Android端怎么让程序开机自动启动呢,急求,第1张

原理:Android系统在开机的时候会发出一个广播。这样我们就可以接收这个广播,然后启动我们的应用。广播接收器必须在xml里面配置,因为xml里面配置的广播接收器 是不随着应用的退出而退出的。

广播接收器:

?123456789101112131415 package com.yangshidesign.boot import android.content.BroadcastReceiverimport android.content.Contextimport android.content.Intent public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, UnityPlayerNativeActivity.class) //这个必须添加flags i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) context.startActivity(i) } }

在manifest的application标签里面配置:

?1234567 <!-- 开机启动 --><receiver android:name="com.yangshidesign.boot.BootReceiver"><intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.HOME"/></intent-filter></receiver>

加上权限:

?1 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

你好,

1,修改/etc/rcN.d (N=0,1,2,3,4,5,6)7个运行级别中K和S开头的文件名,K代表关,S代表开

2,例如,图形界面不需要开nfs,到/etc/rc5.d找到S23nfs,修改为s23nfs

(小写s就代表不开,如果在想开,就把小写改回来)

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

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

 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;


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

原文地址: https://outofmemory.cn/yw/12020893.html

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

发表评论

登录后才能评论

评论列表(0条)

保存