Unity3d OnApplicationPause与OnApplicationFocus

Posted lytwajue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

}

以上是关于Unity3d OnApplicationPause与OnApplicationFocus的主要内容,如果未能解决你的问题,请参考以下文章

在unity3d里无法移动物体

[Unity3D]Unity3D游戏开发之从Unity3D到Eclipse

unity3d用键盘控制物体移动的工具

unity3d中如何用脚本创建对象或者类

Unity3D(12)—数组基本语法

unity3d中怎么调粒子透明度?