Сейчас я создаю массив объектов и просто помещаю строку, а затем любые команды, которые мне нужны, вот так:
Код: Выделить всё
return new object[]
{
"this is an example line with two commands!", new SetImage("Image3"), new PlayMusic(musicClipsContainer.exampleClip2)
"line without commands"
"", new SetSmooth(false),
"and that's how the lines are made!" new StopMusic()
};
Дело в том, что object[] позволяет мне вводить практически все, что угодно, в то время как мне нужны только строки и DialogueCommand, которые могут создать ошибки и путаницу, если другой человек захочет использовать это. Итак, я хочу знать, есть ли способ создать массив, который принимает только эти типы данных или любую альтернативу.
Конечно, я рассматривал другие варианты, например:
- Создание массива структуры, в которую они преобразуются. Проблема: слишком длинный синтаксис для каждой строки ().
Код: Выделить всё
new DialogueLine("example text", new ExampleCommand() - Словарь или список: также делает синтаксис длиннее и сложнее, как если бы у меня был, например, List. Мне пришлось бы инициализировать массив DialogueCommand для каждой строки.
- Использование интерфейсов: я мог бы создать массив с интерфейсом, реализованным обоими типами данных, но не думаю, что смогу реализовать интерфейс в строке.
Подробнее здесь: https://stackoverflow.com/questions/798 ... of-a-class
Мобильная версия