@always_drunkking

Как исправить ошибку CS0311?

Есть два класса
Код первого
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;

namespace ClassLibrary1
{
    
    
        public class DeleteAfterTime
        {
            public Rect RT_MainMenu = new Rect(0f, 100f, 120f, 100f); //Rect это месторасположение меню по x,y и высота, ширина.
            public int ID_RTMainMenu = 1;
            public bool MainMenu = true;
            private void Menu_MainMenu(int id) //Главное меню
            {
                if (GUILayout.Button("Set", new GUILayoutOption[0]))
                {
                    float throwSpeed = 100f;  //Здесь код, который будет происходить при нажатии на эту кнопку
                }
            }
            private void OnGUI()
            {
                if (this.MainMenu)
                {
                    this.RT_MainMenu = GUILayout.Window(this.ID_RTMainMenu, this.RT_MainMenu, new GUI.WindowFunction(this.Menu_MainMenu), "MainMenu", new GUILayoutOption[0]);
                }
            }
            private void Update() //Постоянно обновляемый метод, все что здесь будет написанно будет создаваться бесконечно
            {
                if (Input.GetKeyDown(KeyCode.Insert)) //Кнопка на которую будет открываться и закрываться меню, можно поставить другую
                {
                    this.MainMenu = !this.MainMenu;
                }
            }
        }
    }


и код второго
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;

namespace ClassLibrary1
{
    public class Loader
    {
        public static GameObject MainClass;

        // Token: 0x040000FE RID: 2543
        public static GameObject DrawPlayers;

        // Token: 0x040000FF RID: 255
        public static GameObject DrawVeh;

        // Token: 0x04000100 RID: 256
        public static GameObject TestAim;

        // Token: 0x04000101 RID: 257
        public static GameObject GuiClass;

        public static void Load()
        {
            Loader.MainClass = new GameObject("fl_Main");
            MainClass.AddComponent<DeleteAfterTime>();
            UnityEngine.Object.DontDestroyOnLoad(Loader.MainClass);
        }
    }
}


на что я получаю ошибку
error CS0311: Тип "ClassLibrary1.DeleteAfterTime" не может быть использован как параметр типа "T" в универсальном типе или методе "GameObject.AddComponent()". Нет преобразования неявной ссылки из "ClassLibrary1.DeleteAfterTime" в "UnityEngine.Component"
  • Вопрос задан
  • 707 просмотров
Решения вопроса 1
DeleteAfterTime должен наследоваться от UnityEngine.Component
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы