Ссылка на объекты в векторе объектов

  1. Мне нужно создать вектор или список объектов (в зависимости от того, что позволит мне это сделать).
  2. Создайте экземпляр объекта и добавьте его в вектор или список объектов.
  3. Мне нужно ссылаться на объект в векторе объектов (или в списке объектов) и ссылаться на компонент этого объекта для инициализации переменной, хранящейся в Game Manager.

Примечание. Это не домашнее задание или не работа. Это личная игровая механика, над которой я работаю. Я могу выполнить одно и два. Три - вот где я застрял. Я не уверен, использовать ли вектор или список, и я не знаю, как ссылаться на конкретный объект в этом векторе или списке в Unity C# (с использованием MonoDevelop) (шаблон Singleton).

instance = Instantiate (prefab, spawnPoint.position, spawnPoint.rotation); 
instance.GetComponent<Camera> ().enabled = false; 
cameraTwo = instance.GetComponent<Camera> (); 

Переменная cameraTwo должна быть установлена ​​для компонента объекта в векторе или списке.

Добро пожаловать в Stack Overflow! Убедитесь, что вы прочитали разделы Как спросить. В частности, в вашем случае нам понадобится минимальный воспроизводимый пример; в противном случае ваш вопрос будет закрыт как не по теме или слишком широкий.

dymanoid 02.05.2018 11:19

«Вот где я застрял» Пожалуйста, покажите свой код.

HimBromBeere 02.05.2018 11:21

instance = Instantiate (префаб, spawnPoint.position, spawnPoint.rotation); instance.GetComponent <Camera> () .enabled = false; cameraTwo = instance.GetComponent <Camera> ();

Leonardo DaVinci 02.05.2018 11:24

Переменная cameraTwo должна быть установлена ​​для компонента объекта в векторе или списке.

Leonardo DaVinci 02.05.2018 11:25

Какого типа предметы в вашем списке? Говоря о том, что переменная cameraTwo должна быть установлена ​​для компонента объекта, вы имеете в виду, что элементы в вашем списке имеют элементы типа Camera, или вам нужно динамически добавлять новый компонент в GameObjects в вашем списке (с GameObject. AddComponent)

Mikko Koivisto 02.05.2018 12:08

@MikkoKoivisto В моем списке есть компоненты камеры, к которым мне нужно получить доступ. Проблема заключается в том, чтобы указать на этот конкретный объект, чтобы захватить его компонент.

Leonardo DaVinci 02.05.2018 13:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
92
2

Ответы 2

The items in my list have camera components that I need to access. The problem is having to point to that specific object to grab its component.

Вы можете использовать System.Linq для поиска элементов, у которых есть компонент Camera.

using System.Linq;
...
List<GameObject> myList = new List<GameObject>();
public GameObject GetGameObjectWithCameraComponent() {
    return myList.FirstOrDefault(item => item.GetComponent<Camera>() != null);
}

public IEnumerable<GameObject> GetAllGameObjectsWithCameraComponent() {
    return myList.Where(item => item.GetComponent<Camera>() != null);
}

Список [0] .GetComponent (); Задача решена. Спасибо за ваши ответы.

Не забудьте проверить List.Length или List.Count, чтобы избежать NPE.

Leon Willens 04.05.2018 07:26

Другие вопросы по теме