我正在使用鼠标锁作为我在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;
}