我在 webGL 游戏中使用鼠标锁定作为我的第一人称相机旋转的一部分。
我想确保我专注于游戏,当焦点丢失/按下退出键时,我想显示一个带有文本“单击此处继续”的暂停屏幕。
这是我的暂停课
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);
}
}
问题是
当用户将焦点(例如选项卡)切换到其他内容时,游戏不会暂停
当用户按下退出时,游戏不会显示暂停菜单。好像没有注册退出键。他们能够在浏览器中再次看到他们的光标(这使得第一人称控制令人困惑)。
如果这有任何帮助,这就是我在我的 rotateCamera 脚本中处理鼠标锁定的方式。
public void LockCursor(bool _lock)
{
lockCursor = _lock;
Screen.lockCursor = lockCursor;
}