如何检查我的Unity WebGL应用程序是否具有焦点?

时间:2016-12-31 09:59:36

标签: c# html5 unity3d unity-webgl

我正在使用鼠标锁作为我在webGL游戏中第一次旋转镜头的一部分。

我想确保我专注于游戏,当焦点丢失/退出键被按下时我想显示一个暂停屏幕,文字'点击此处继续'。

这是我的Pause课程

using UnityEngine;
using System.Collections;

public class Pause : MonoBehaviour {


public RotateCamera rotateCamera;
public GameObject pauseMenu;
public bool paused;

public void Start()
{
    PauseGame();
}


void OnApplicationFocus(bool hasFocus)
{
    if (hasFocus == true)
    {
        UnPause();
    }
    if (hasFocus == false)
    {
        PauseGame();
    }
}

void Update () {

    if (Input.GetKeyDown(KeyCode.Escape))
    {
        PauseGame();
    }

    if (paused)
    {
        if (Input.GetMouseButtonDown(0))
        {
            UnPause();
        }
    }
}

public void PauseGame()
{
    rotateCamera.LockCursor(false);
    paused = true;
    pauseMenu.SetActive(true);
}

public void UnPause()
{
    rotateCamera.LockCursor(true);
    paused = false;
    pauseMenu.SetActive(false);
}

}

问题是

  • 当用户将焦点切换到游戏等其他内容时 不停顿

  • 当用户按下escape时,游戏不会显示暂停菜单。它好像没有注册逃生键按下。他们能够在浏览器中再次看到他们的光标(这使第一人控制混乱)。

如果这有助于进一步说明,这就是我在rotateCamera脚本中处理鼠标锁定的方法。

public void LockCursor(bool _lock)
{
    lockCursor = _lock;
    Screen.lockCursor = lockCursor;
}

0 个答案:

没有答案