解决方式:将鼠标箭头解锁
在脚本按esc打开Canvas的同时使得鼠标解锁
Cursor.lockState = CursorLockMode.None;//鼠标解锁
Cursor.lockState= CursorLockMode.Locked;//鼠标上锁
在按esc关闭时使鼠标上锁
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class MenuList : MonoBehaviour
{
public GameObject menuList;//菜单列表
[SerializeField] private bool menuKeys = true;
[SerializeField] private AudioSource bgmSource;//背景音乐
// Update is called once per frame
void Update()
{
if(menuKeys == true)
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Cursor.lockState = CursorLockMode.None;//鼠标解锁
menuList.SetActive(true);
menuKeys = false;
Time.timeScale = 0;//时间静止
bgmSource.Pause();//bgm静止
}
}
else if (Input.GetKeyDown(KeyCode.Escape))
{
Cursor.lockState= CursorLockMode.Locked;//鼠标上锁
menuList.SetActive(false);
menuKeys = true;
Time.timeScale = 1;
bgmSource.Play();
}
}
//返回游戏
public void Return()
{
menuList.SetActive(false);
menuKeys = true;
Time.timeScale = 1;
bgmSource.Play();
}
//退出游戏
public void Exit()
{
Application.Quit();
}
}