Я делаю трехмерную игру в единстве, где игрок может взаимодействовать с изображениями и заметками (примерно 3-4 абзаца).
Я создал холст, когда игрок взаимодействует с заметками на земле, появляется меню (холст).
Интересно, есть ли способ хранить строковые переменные с изображением GameObjects в том же массиве? Кроме того, я собираюсь использовать эти изображения на холсте, поэтому я должен создать как изображение или как спрайт?
2 ответа
Если вы хотите, чтобы они были компонентами пользовательского интерфейса, вы должны создать компоненты Image.
Я полагаю, что вы можете достичь этого, определив свой список двух общих предков объектов;
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());
}
}
Вы должны использовать общий базовый тип, от которого оба наследуют. Если обе вещи, которые вы хотите сохранить, например, типа MonoBehaviour
имеет смысл использовать это как базовый тип вместо object
.
public List<MonoBehaviour> List = new List<MonoBehaviour>();
Это, по крайней мере, предоставит вам всю функциональность, которую реализует MonoBehaviour
/ Component
. Это звучит, например, как позже интересует .transform.position
.
Если вы говорите о таких вещах, как Image
и < a href = "https://docs.unity3d.com/ScriptReference/UI.Text.html" rel = "nofollow noreferrer"> Text
вы даже можете использовать UI.MaskableGraphic
как общий тип
public List<MaskableGraphic> List = new List<MaskableGraphic>();
Который обеспечивает еще больше свойств, связанных с пользовательским интерфейсом, таких как, например, color
или canvas
.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.