C# 如何检查我的Unity WebGL应用程序是否有焦点?
我在webGL游戏中使用鼠标锁定作为第一人称相机旋转的一部分 我想确保我的注意力集中在游戏上,当焦点丢失/按escape键时,我想显示一个带有文本“单击此处继续”的暂停屏幕 这是我的暂停课C# 如何检查我的Unity WebGL应用程序是否有焦点?,c#,html,unity3d,unity-webgl,C#,Html,Unity3d,Unity Webgl,我在webGL游戏中使用鼠标锁定作为第一人称相机旋转的一部分 我想确保我的注意力集中在游戏上,当焦点丢失/按escape键时,我想显示一个带有文本“单击此处继续”的暂停屏幕 这是我的暂停课 using UnityEngine; using System.Collections; public class Pause : MonoBehaviour { public RotateCamera rotateCamera; public GameObject pauseMenu; public
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时,游戏不会显示暂停菜单。它好像没有注册退出键。他们可以在浏览器中再次看到光标(这会使第一人称控件混淆)
public void LockCursor(bool _lock)
{
lockCursor = _lock;
Screen.lockCursor = lockCursor;
}
检查它的唯一方法是为您的登录页编写一个小js脚本,检查游戏的iframe是否具有焦点。你可以用谷歌统一浏览器来做更具体的事情吗?