Есть ли способ хранить переменные изображения и строки в одном массиве? (Единство) - PullRequest
0 голосов
/ 27 мая 2019

Я делаю трехмерную игру в единстве, где игрок может взаимодействовать с изображениями и заметками (примерно 3-4 абзаца).

Я создал холст, когда игрок взаимодействует с заметками на земле, появляется меню (холст).

Интересно, есть ли способ хранить строковые переменные с изображениями GameObjects в одном массиве? Кроме того, я собираюсь использовать эти изображения на холсте, поэтому я должен создать как изображение или как спрайт?

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Вы должны использовать общий базовый тип, от которого оба наследуют. Если обе вещи, которые вы хотите сохранить, например, типа MonoBehaviour было бы разумно использовать это как базовый тип вместо object.

public List<MonoBehaviour> List = new List<MonoBehaviour>();

Это, по крайней мере, предоставит вам все функции, которые реализует MonoBehaviour / Component. Это звучит, например, как позже интересуются .transform.position.

Если вы говорите о таких вещах, как Image и Text, вы даже можете использовать UI.MaskableGraphic в качестве общего типа

public List<MaskableGraphic> List = new List<MaskableGraphic>();

, который обеспечивает еще больше свойств, связанных с пользовательским интерфейсом, таких как, например, color или canvas.

0 голосов
/ 27 мая 2019
  1. Если вы хотите, чтобы они были компонентами пользовательского интерфейса, вы должны создать компоненты Image.

  2. Полагаю, вы можете добиться этого, определив свой список какдва объекта общего предка;Object:

var list = new List<object>();

list.Add("Hello");
list.Add(5);
list.Add(MyImage);

foreach (object obj in list) 
{
    if (obj is string) 
    {
        Debug.Log(obj.ToString());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...