我有这样的问题。也许是因为我安装了一个新的数据包“输入系统”,这样发生了,还有很多关于控制器问题的错误。两个错误都是同样的原因?我应该先解决哪个错误,以及如何解决
上一个
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
using UnityEngine.UIElements;
using UnityEngine;
public class GamePause : MonoBehaviour
{
[SerializeField] VisualTreeAsset _gamePause;
[SerializeField] VisualTreeAsset _settingMenu;
[SerializeField] VisualTreeAsset _audioSetting;
VisualElement _gameSetting;
VisualElement _gamePauseVE;
VisualElement _settingMenuVE;
VisualElement _audioSettingVE;
UIDocument _doc;
Button _gprbuttons; //RESU
Button _gpsbuttons; //SETT
Button _gpmbuttons; //MAIN
Button _gpdbuttons; //DESK
Button _smabuttons; //AUDIO
Button _smcbuttons; //CONTR
Button _smgbuttons; //GAMEP
Button _asbbuttons; //BACK
Button _pauseButton;
void Awake()
{
_doc = GetComponent<UIDocument>();
_gameSetting = _doc.rootVisualElement.Q<VisualElement>("MiddleSection");
_pauseButton = _doc.rootVisualElement.Q<Button>("Pause");
_pauseButton.clicked += PauseButtonOnClicked;
_gamePauseVE = _gamePause.CloneTree();
var _gprbuttons = _gamePauseVE.Q<Button>("Resume");
var settingButton = _gamePauseVE.Q<Button>("Setting");
var btMainMenuButton = _gamePauseVE.Q<Button>("BackToMainMenu");
var btDesktopButton = _gamePauseVE.Q<Button>("BackToDesktop");
_gprbuttons.clicked += ResumeButtonOnClicked;
settingButton.clicked += SettingButtonOnClicked;
btMainMenuButton.clicked += BTMainMenuButtonOnClicked;
btDesktopButton.clicked += BTDesktopButtonOnClicked;
_settingMenuVE = _settingMenu.CloneTree();
var audioButton = _settingMenuVE.Q<Button>("Audio");
var controlButton = _settingMenuVE.Q<Button>("Control");
var gameplayButton = _settingMenuVE.Q<Button>("Gameplay");
var btMainPauseButton = _settingMenuVE.Q<Button>("Back");
audioButton.clicked += AudioButtonOnClicked;
controlButton.clicked += ControlButtonOnClicked;
gameplayButton.clicked += GameplayButtonOnClicked;
btMainPauseButton.clicked += btMainPauseButtonOnClicked;
_audioSettingVE = _audioSetting.CloneTree();
var btSettingMenuMButton = _audioSettingVE.Q<Button>("Back");
btSettingMenuMButton.clicked += btSettingMenuButtonOnClicked;
}
void PauseButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_gamePauseVE);
}
void ResumeButtonOnClicked()
{
}
void SettingButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_settingMenuVE);
}
void BTMainMenuButtonOnClicked()
{
SceneManager.LoadScene("MainMenu");
}
void BTDesktopButtonOnClicked()
{
Application.Quit();
}
void AudioButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_audioSettingVE);
}
void ControlButtonOnClicked()
{
}
void GameplayButtonOnClicked()
{
}
void btMainPauseButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_gamePauseVE);
}
void btSettingMenuButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_settingMenuVE);
}
}
在bug之后尝试修复。它会更有效率吗?
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
using UnityEngine.UIElements;
using UnityEngine;
public class GamePause : MonoBehaviour
{
[SerializeField] VisualTreeAsset _gamePause;
[SerializeField] VisualTreeAsset _settingMenu;
[SerializeField] VisualTreeAsset _audioSetting;
VisualElement _gameSetting;
VisualElement _gamePauseVE;
VisualElement _settingMenuVE;
VisualElement _audioSettingVE;
UIDocument _doc;
Button _pauseButton;
Button _gprbuttons; //RESU
Button _gpsbuttons; //SETT
Button _gpmbuttons; //MAIN
Button _gpdbuttons; //DESK
Button _smabuttons; //AUDIO
Button _smcbuttons; //CONTR
Button _smgbuttons; //GAMEP
Button _smbbuttons; //BACK
Button _asbbuttons; //BACK
void Awake()
{
_doc = GetComponent<UIDocument>();
_gameSetting = _doc.rootVisualElement.Q<VisualElement>("MiddleSection");
_pauseButton = _doc.rootVisualElement.Q<Button>("Pause");
_pauseButton.clicked += PauseButtonOnClicked;
_gamePauseVE = _gamePause.CloneTree();
_gprbuttons = _gamePauseVE.Q<Button>("Resume");
_gpsbuttons = _gamePauseVE.Q<Button>("Setting");
_gpmbuttons = _gamePauseVE.Q<Button>("BackToMainMenu");
_gpdbuttons = _gamePauseVE.Q<Button>("BackToDesktop");
_gprbuttons.clicked += ResumeButtonOnClicked;
_gpsbuttons.clicked += SettingButtonOnClicked;
_gpmbuttons.clicked += BTMainMenuButtonOnClicked;
_gpdbuttons.clicked += BTDesktopButtonOnClicked;
_settingMenuVE = _settingMenu.CloneTree();
_smabuttons = _settingMenuVE.Q<Button>("Audio");
_smcbuttons = _settingMenuVE.Q<Button>("Control");
_smgbuttons = _settingMenuVE.Q<Button>("Gameplay");
_smbbuttons = _settingMenuVE.Q<Button>("Back");
_smabuttons.clicked += AudioButtonOnClicked;
_smcbuttons.clicked += ControlButtonOnClicked;
_smgbuttons.clicked += GameplayButtonOnClicked;
_smbbuttons.clicked += _smbbuttonsOnClicked;
_audioSettingVE = _audioSetting.CloneTree();
_asbbuttons = _audioSettingVE.Q<Button>("Back");
_asbbuttons.clicked += btSettingMenuButtonOnClicked;
}
void PauseButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_gamePauseVE);
}
void ResumeButtonOnClicked()
{
}
void SettingButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_settingMenuVE);
}
void BTMainMenuButtonOnClicked()
{
SceneManager.LoadScene("MainMenu");
}
void BTDesktopButtonOnClicked()
{
Application.Quit();
}
void AudioButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_audioSettingVE);
}
void ControlButtonOnClicked()
{
}
void GameplayButtonOnClicked()
{
}
void _smbbuttonsOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_gamePauseVE);
}
void btSettingMenuButtonOnClicked()
{
_gameSetting.Clear();
_gameSetting.Add(_settingMenuVE);
}
}
任何建议或意见。 :)