MonoBehaviour.OnApplicationFocus 当程序焦点
官方描述:
译:
当玩家获得或失去焦点时,发送给所有游戏物体。
OnApplicationFocus 可以作为协同程序,在函数中简单地使用yield语句就行。如果它被应用为一个协同程序,它将作为参考,在最初两次框架:第一作为一个早期的通知和第二次在正常的协同程序更新步骤之间。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public bool paused;
void OnGUI() {
//如果pause为true
//则GUI在(100,100)显示一个20*30的label("Game paused")
if (paused)
GUI.Label(new Rect(100, 100, 50, 30), "Game paused");
}
//获得或失去焦点,将focusStatus赋值给paused
void OnApplicationFocus(bool focusStatus) {
paused = focusStatus;
}
}
MonoBehaviour.OnApplicationPause 当程序暂停
官方描述:
译:
当玩家想暂停时发送到所有的游戏物体。
OnApplicationPause 可以作为协同程序,在函数中简单地使用yield语句就行。如果它被应用为一个协同程序,它将作为参考,在最初两次框架:第一作为一个早期的通知和第二次在正常的协同程序更新步骤之间。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public bool paused;
void OnGUI() {
//如果pause为true
//则GUI在(100,100)显示一个20*30的label("Game paused")
if (paused)
GUI.Label(new Rect(100, 100, 50, 30), "Game paused");
}
//玩家想暂停时,将pauseStatus赋值给paused
void OnApplicationPause(bool pauseStatus) {
paused = pauseStatus;
}
}
MonoBehaviour.OnApplicationQuit 当程序退出
官方描述:
译:
在应用被退出之前发送给所有的游戏物体。
当用户停止播放模式时在编辑器中调用。当网页视图被关闭时,在网页播放器中调用。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
//当要退出应用时,暂存游戏数据
void OnApplicationQuit() {
PlayerPrefs.Save();
}
}
注意,iOS应用程序通常是暂停,不是退出。你应该在玩家设置中的iOS编译器中标记Exit on Suspend(不懂,应该是个按钮),这会使游戏退出而不是暂停,否则你可能会看不到这个调用。如果Exit on Suspend不标记,应该使用OnApplicationPause函数代替。
欢迎关注我的微信个人订阅号
每天多学一点0.0