Android嵌入unity界面,崩溃及卸载activity后不可点击问题

背景:
Android原生项目,突然有了要加3D展示交互的需求。而原生项目内部实现的模块和逻辑较多,不适合将Android打包放入unity,因此采用的Android原生嵌入unity。
问题描述:
Android嵌入unity的方法,可自行百度。成功嵌入后,有两三问题。
(1)未启动新进程前,杀掉activity后,整个app崩溃。
于是采用新进程的方法,并且重写kill函数。
参考: Android调用Unity,关闭Unity场景的一些问题
Android Unity3D 相互交互,及退出继承UnityPlayerActivity的Crash问题
(2)采用新进程,重写kill之后,还是有两个问题:
a、unity进程启动时,通信重启;找到问题原因是整个实例化,禁止实例化即可
b、unity进程关闭时,后台界面有3 、4 秒的时间是不可操作的,这种是太影响操作的。

重点就是问题b。
跟踪日志有这样一条:3399-3569/com.jucheng.platform E/Unity: java.net.UnknownHostException: Unable to resolve host "config.uca.cloud.unity3d.com": No address associated with hostname
猜测可能是跟unity内部上报云服务数据相关(原因是上报半天等待云返回,等待时间长并且是不可访问的)。想办法禁止unity上报,搜索后,找到该文章:How to disable Unity analytics?
核心方法有3个
1、移除analytics package :去package manager 窗口移除即可
2、确保 HW statistics disabled
project setting->player-> other setting-> configuration-> Disable HW Statistics* ,打对勾即可。
在这里插入图片描述
3、在场景awake最早的地方,加入以下代码:

 void Awake()
    {
    
    
        UnityEngine.Analytics.Analytics.enabled = false;
        UnityEngine.Analytics.Analytics.deviceStatsEnabled = false;
        UnityEngine.Analytics.Analytics.initializeOnStartup = false;
        UnityEngine.Analytics.Analytics.limitUserTracking = false;
        UnityEngine.Analytics.PerformanceReporting.enabled = false;
    }

最终,很快卸载的效果出现。unity不再analysis,也不再报 云的结果了。

猜你喜欢

转载自blog.csdn.net/mansir123/article/details/102920526
今日推荐