Unity3d OnApplicationPause与OnApplicationFocus 在安卓平台的应用

在手机游戏当中,会碰到“强制暂停”,如:锁屏、接电话或短信之类的。如果“强制暂停”时间过长,网络游戏有时得重新登录等事件。

而Unity3d,Android Plugins中的UnityPlayer.UnitySendMessage,经测试在强制暂停时,OnPause、OnStop周期中UnitySendMessage无效。

重点探索OnApplicationPause和OnApplicationFocus;

OnApplicationPause,当程序暂停;

OnApplicationFocus,当程序获得或失去焦点;

经测试:

强制暂停时,先 OnApplicationPause,后 OnApplicationFocus;(先暂停后失去焦点)

重新“启动”手机时,先OnApplicationFocus,后 OnApplicationPause;

思路:

1,定义两个bool

isPause=false;

isFocus=false;

在OnEnable();初始化:

void OnEnable(){

    isPause=false;

    isFocus=false;

}


void OnApplicationPause(){

#if UNITY_IPHONE || UNITY_ANDROID

    Debug.Log("OnApplicationPause  "+isPause+"  "+isFocus);

    if(!isPause)

    {

        // 强制暂停时,事件

        pauseTime();

    }

    else 

    {

        isFocus=true;

    }

    isPause=true;

#endif

}


void OnApplicationFocus(){

#if UNITY_IPHONE || UNITY_ANDROID

    Debug.Log("OnApplicationFocus  "+isPause+"  "+isFocus);

    if(isFocus)

    {

        // “启动”手机时,事件

        resumeList();

        isPause=false;

        isFocus=false;

    }

    if(isPause)

    {

        isFocus=true;

    }

#endif

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值