• unity, 模拟退后台


    //simulateSwitchToBackground.cs

    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    public class simulateSwitchToBackground : MonoBehaviour {
    void sendApplicationPauseMessage(bool isPause){
    Transform[] transList= GameObject.FindObjectsOfType<Transform>(); 
    for (int i = 0; i < transList.Length; i++) {
    Transform trans = transList [i];
    //Note that messages will not be sent to inactive objects
    trans.SendMessage ("OnApplicationPause",isPause,SendMessageOptions.DontRequireReceiver);
    }
    }
    void sendApplicationFocusMessage(bool isFocus){
    Transform[] transList= GameObject.FindObjectsOfType<Transform>(); 
    for (int i = 0; i < transList.Length; i++) {
    Transform trans = transList [i];
    //Note that messages will not be sent to inactive objects
    trans.SendMessage ("OnApplicationFocus",isFocus,SendMessageOptions.DontRequireReceiver);
    }
    }

    public void sendEnterBackgroundMessage(){
    sendApplicationPauseMessage (true);
    sendApplicationFocusMessage (false);

    }
    public void sendEnterFoegroundMessage(){
    sendApplicationFocusMessage (true);
    sendApplicationPauseMessage (false);

    }

    }

    //simulateSwitchToBackgroundEditor.cs

    using UnityEngine;
    using System.Collections;
    using UnityEditor;
    [CustomEditor(typeof(simulateSwitchToBackground))]
    public class simulateSwitchToBackgroundEditor : Editor
    {

    void OnEnable(){
    }

    public override void OnInspectorGUI()
    {


    DrawDefaultInspector();
    serializedObject.Update ();

    serializedObject.ApplyModifiedProperties ();//now varibles in script have been updated


    if (GUILayout.Button ("send enter background message")) {
    if (Application.isPlaying) {
    ((simulateSwitchToBackground)target).sendEnterBackgroundMessage ();
    }
    }
    if (GUILayout.Button ("send enter foeground message")) {
    if (Application.isPlaying) {
    ((simulateSwitchToBackground)target).sendEnterFoegroundMessage ();
    }
    }
    }


    }

    把simulateSwitchToBackground.cs挂到场景中的一个gameObject上,其inspector面板如下:

    在游戏运行过程中点“send endter background message”按钮,即模拟游戏退到后台。再点"send enter foeground message"按钮,模拟游戏从后台切回到前台。

    参考:

    http://www.voidcn.com/blog/goodai007/article/p-5804722.html

  • 相关阅读:
    使用 HTML5 可以做的五件很棒的事情
    分享最新20款非常棒的 CSS 工具
    最新17个紫色风格网页设计作品欣赏
    最新70佳很酷的名片设计作品欣赏
    50个优秀的名片设计作品欣赏
    推荐12个漂亮的CSS3按钮实现方案
    推荐10个很棒的 CSS3 开发工具
    30个复古风格的网页设计作品欣赏
    非常流行的十款 jQuery 插件推荐
    20个漂亮的WordPress作品集主题分享
  • 原文地址:https://www.cnblogs.com/wantnon/p/6283867.html
Copyright © 2020-2023  润新知