我正在写一个小UI脚本,突然Unity抛出这个错误:
Assets\UI\Menu\MenuUIManager.cs(91,36): error CS1061: 'GameObject' does not contain a definition for 'SetActive' and no accessible extension method 'SetActive' accepting a first argument of type 'GameObject' could be found (are you missing a using directive or an assembly reference?)
在它正常工作之前,我有一段时间没有接触类,所以我可能使用方向或类似的东西更改了它,而没有注意到(在错误多次出现之前,我正在处理一个脚本对象)。我还将外部工具设置为VisualStudio 2022(正确的版本)我已经尝试过切换,以便尝试修复错误。
(Unity也会抛出GameObject不包含GetComponent〈〉()定义的错误;或变换)
我可以重新导入我的脚本或使用方向无论如何,或者我可以重新生成我的项目文件?(已经在外部工具中点击该按钮)
谢谢,非常感谢帮助:D原谅我的拼写:)
抛出错误的代码如下:
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using Unity.Collections;
using Unity.Services.Authentication;
using Unity.Services.Core;
using UnityEngine;
using UnityEngine.UI;
namespace EOD
{
public class MenuUIManager : MonoBehaviour
{
//Enums--------------------------------------------------------------------------
//Fields-------------------------------------------------------------------------
private static MenuUIManager instance;
[Header("Main Menu")]
[SerializeField] private GameObject _mainMenuParent;
private UI_MainMenu _mainMenuUI;
[Header("Join Private Game")]
[SerializeField] private GameObject _joinPrivateGameParent;
private UI_JoinPrivate _joinPrivateLobbyUI;
[Header("Customize Character")]
[SerializeField] private GameObject _customizeCharacterParent;
private UI_CustomizeCharacter _customizeCharacterUI;
[Header("Create Game")]
[SerializeField] private GameObject _createGameParent;
private UI_CreatLobby _creatLobbyUI;
[Header("LOBBY")]
[SerializeField] private GameObject _lobbyParent;
private UI_Lobby _lobbyUI;
[Header("Search Game")]
[SerializeField] private GameObject _searchGameParent;
private UI_SearchGame _searchGameUI;
//Propertys----------------------------------------------------------------------
//Events-------------------------------------------------------------------------
public delegate void StartGame();
public event StartGame OnStartGame;
//Singelton ---------------------------------------------------------------------
public static MenuUIManager Instance { get { return instance; } }
//Unity Functions----------------------------------------------------------------
private void Awake()
{
//Singelton
if(instance != null && instance != this) { Destroy(this.gameObject); }
else { instance = this; }
SetUpReferencesAndEvents();
SetMainMenuActive();
}
//Private/Protected Functions----------------------------------------------------
private void SetUpReferencesAndEvents()
{
_mainMenuUI = _mainMenuParent.GetComponent<UI_MainMenu>();
_joinPrivateLobbyUI = _joinPrivateGameParent.GetComponent<UI_JoinPrivate>();
_customizeCharacterUI = _customizeCharacterParent.GetComponent<UI_CustomizeCharacter>();
_creatLobbyUI = _createGameParent.GetComponent<UI_CreatLobby>();
_lobbyUI = _lobbyParent.GetComponent<UI_Lobby>();
_searchGameUI = _searchGameParent.GetComponent<UI_SearchGame>();
}
//Public Functions---------------------------------------------------------------
public void SetMainMenuActive()
{
_mainMenuParent.SetActive(true);
_joinPrivateGameParent.SetActive(false);
_customizeCharacterParent.SetActive(false);
_createGameParent.SetActive(false);
_lobbyParent.SetActive(false);
_searchGameParent.SetActive(false);
}
public void SetJoinPrivateActive()
{
_mainMenuParent.SetActive(false);
_joinPrivateGameParent.SetActive(true);
_customizeCharacterParent.SetActive(false);
_createGameParent.SetActive(false);
_lobbyParent.SetActive(false);
_searchGameParent.SetActive(false);
}
public void SetCustomizeCharacterActive()
{
_mainMenuParent.SetActive(false);
_joinPrivateGameParent.SetActive(false);
_customizeCharacterParent.SetActive(true);
_createGameParent.SetActive(false);
_lobbyParent.SetActive(false);
_searchGameParent.SetActive(false);
}
public void SetCreatLobbyActive()
{
_mainMenuParent.SetActive(false);
_joinPrivateGameParent.SetActive(false);
_customizeCharacterParent.SetActive(false);
_createGameParent.SetActive(true);
_lobbyParent.SetActive(false);
_searchGameParent.SetActive(false);
}
public void SetLobbActive()
{
_mainMenuParent.SetActive(false);
_joinPrivateGameParent.SetActive(false);
_customizeCharacterParent.SetActive(false);
_createGameParent.SetActive(false);
_lobbyParent.SetActive(true);
_searchGameParent.SetActive(false);
}
public void SetSearchGameActive()
{
_mainMenuParent.SetActive(false);
_joinPrivateGameParent.SetActive(false);
_customizeCharacterParent.SetActive(false);
_createGameParent.SetActive(false);
_lobbyParent.SetActive(false);
_searchGameParent.SetActive(true);
}
如前所述,我尝试了外部工具重新生成项目文件,我尝试将外部工具从Visual Studio切换到另一个IDE,我检查了我的使用说明
1条答案
按热度按时间mfuanj7w1#
好吧,我的错,如果有人遇到这样的事情,我只需要删除我不再使用的ScriptableObject。我不知道为什么,但这似乎有一个错误的尾巴背后。我还注解了所有的“错误行”,通过点击到统一重新编译,并重新注解他们,并重新编译,现在一切都很好:)