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

Примере:

public class Speech
 {
     public Sprite CharacterHead; // Holds a reference to a sprite which is the "head" of who's currently speaking 
     public LocalizedString SpeechOrigin; // Holds a reference to a localizedstring that is what that character is saying based on the language. (Uses Unity.Localization)
     public string Name; // the name of the character that is speaking
 }

Этот класс «Speech» никогда не следует изменять во время выполнения, его нужно читать только во время диалогов.

Мой вопрос: каков общий хороший способ хранения данных такого типа? Я новичок в единстве, и единственный способ, который я нашел для этого, - это объявить список классов моноповедения и редактировать их через инспектор, но это не кажется эффективным способом справиться с этим в игре, которая будет иметь 1000+ различных «Речи».

Ps: Не обращайте внимания на то, чтобы все переменные были общедоступными, они таковы прямо сейчас, чтобы облегчить некоторые части разработки, я изменю необходимые, когда придет время.

2
Antnio Pedro Gonalves Ferreira 12 Авг 2020 в 23:55

1 ответ

Не следует хранить много данных в коде C # . Используйте внешние файлы, предназначенные для данных, путем создания файла JSON, файла XML или любого другого типа в формате, удобочитаемом человеком и компьютером.

Каждый {{X0}} является {{X1}}. Это одно из основных следствий того факта, что первый класс {{X2}} - второй интерфейс. Получая доступ к объекту класса {{X3}} через ссылку типа {{X4}}, вы ограничиваете себя использованием только тех его частей, которые определены {{X5}}, но вы не изменили сам объект в любом случае. Это все еще {{X6}}.…

Вот пример того, что вы можете делать с XML в вашем случае использования.

<npcs>
  <npc name="Oren">
    <dialogue>
      <text>Hi #{PlayerName} do you want to eat falafel? </text>
      <options>
        <option action="yes">yes, I would like</option>
        <option action="no">no...</option>
      </options>
    </dialogue>
  </npc>
</npcs>

Использовать XML довольно просто, и он идеально подходит для диалогов

1
user5798659 13 Авг 2020 в 00:45