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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐