Наличие списка со скриптом и получение из него игрового объекта - PullRequest
0 голосов
/ 18 июня 2020

У меня есть сценарий, в котором есть список с типом определенного сценария. Затем требуется создать экземпляры всех членов этого списка (этот сценарий есть у GameObjects). Я пробовал делать для l oop по списку, а затем .GetComponent<GameObject>();, но, конечно, это не работает по очевидным причинам. Итак, есть ли способ сделать это?

Для тех, кто задается вопросом, почему я пытаюсь это сделать, я хочу ограничить всех, кто использует этот сценарий, только добавлением игровых объектов с помощью этого сценария (поскольку я не Я не хочу, чтобы игровой объект создавался без создания этого скрипта)

Может быть, у вас есть ссылка на определенный скрипт, который знает, какой игровой объект был прикреплен к нему? или есть способ лучше сделать это

Спасибо :)

1 Ответ

0 голосов
/ 18 июня 2020

Было бы проще, если бы вы добавили свой код в вопрос.


Ну, GameObject явно не относится к типу Component (MonoBehaviour наследуется от Component).

Похоже, у вас есть List<SomeComponent>.

Так что вы можете просто получить доступ к свойству Component.gameObject, который является ссылкой на GameObject, к которому прикреплен компонент.

List<SomeComponent> list;

...

foreach(var component in list)
{
    var obj = component.gameObject;

    ...
}

Обратите внимание, что на самом деле вам это не нужно. Похоже, вы хотите передать элементы списка в Instantiate, который также принимает Component (или, лучше сказать, любой Object материнский класс GameObject, Component и ScriptableObject) как параметр префаба. Затем он возвращает тот же тип данного префаба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...