Unity3d AddComponent принимает переменную
Детали: В C# на Unity3d Поиск производился в документации по Unity, но этот пример не подходит для моего случая, как и для других веб-сайтов, которые я посетил. (Я не перечислил их, как я должен.)
То, что я пытаюсь сделать, это передать переменную класса с конструктором в качестве компонента:
CustomComponentClass ccc = new CustomComponentClass(2343, "blop");
gameObject.AddComponent(ccc);
Я хочу знать, что я пытаюсь сделать, или я что-то пропустил...
Проблема:
gameObject.AddComponent(ccc); -> cannot convert ccc to string.
gameObject.AddComponent<ccc>(); -> Are you missing a using directive or an assembly reference? (i'm not, i'm using a variable and all is in the same namespace)
gameObject.AddComponent<CustomComponentClass>(ccc); -> UnityEngine.GameObject.AddComponent(string) cannot be used with the type arguments
gameObject.AddComponent<CustomComponentClass>(2343, "blop"); -> No overload for method AddComponent takes 2 arguments
Все, что я пытаюсь, не работает. C# не совсем похож на javascript, если я прав, мы привыкли передавать переменные в addcomponent в js.
Контекст: я должен обязательно передать это в конструкторе. У меня есть 2 поля, которые являются частными, и я не могу преобразовать их в статические, постоянные или открытые по соображениям безопасности.
Опции: Если ответ слишком сложен для меня, я, вероятно, сделаю get/set и проверим, не заполнены ли поля.
1 ответ
Вам абсолютно не нужно передавать это конструктору.
Вместо этого создайте компонент как обычно (без параметров), добавьте компонент к игровому объекту, затем вызовите метод настройки для компонента, который предоставляет необходимые параметры и запускает любой код, который у вас есть в конструкторе.