unity3d 游戏对象不包含SetActive()的定义;

pcww981p  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(257)

我正在写一个小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,我检查了我的使用说明

mfuanj7w

mfuanj7w1#

好吧,我的错,如果有人遇到这样的事情,我只需要删除我不再使用的ScriptableObject。我不知道为什么,但这似乎有一个错误的尾巴背后。我还注解了所有的“错误行”,通过点击到统一重新编译,并重新注解他们,并重新编译,现在一切都很好:)

相关问题