Мне очень тяжело с хранением и доступом к данным для моей игры RPG.

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

public static class IndexOf
{
    public class Element
    {
        // Element ids in sprite array.
        public const int Water = 0;
        public const int Lava = 1;
        public const int Ice = 2;
    }

    public class Nature
    {
        // Nature (placed on tile)
        public const int Rock = 0;
        public const int Bush = 1;
    }

    public class Biome
    {
        //Biomes ids.
        public const int Mountain = 0;
        public const int River = 1;
    }
}

Однако есть ли лучший способ сделать это или это хорошее решение?

2
FICHEKK 20 Авг 2018 в 21:43

3 ответа

Рассматривали ли вы преобразование ваших констант в перечисления?

public enum Element
{
    // Element ids in sprite array.
    Water,
    Lava,
    Ice
}

public enum Nature
{
    // Nature (placed on tile)
    Rock,
    Bush
}

public enum Biome
{
    //Biomes ids.
    Mountain,
    River
}

Затем вы можете получить доступ к элементам, как с любым перечислением (Element.Water, Biome.River и т. Д.).

2
MichaelMilom 20 Авг 2018 в 18:52

Для константных значений вы можете взглянуть на enum: https : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/enum. Перечисления - это постоянный набор целых чисел, которые легко читаются и легко расширяются.

Надеюсь, это поможет, если вам нужен практический пример, дайте мне знать.

0
max meijer 20 Авг 2018 в 18:55

Я сделал очень похожий вопрос на другом сайте StackExchange, о том, как лучше всего хранить данные в моей игре. Там есть ОЧЕНЬ подробный ответ, но здесь, в двух словах, ваши варианты хранения данных в вашей игре:

  • Статический скрипт
  • GameObject, содержащий данные
  • PlayerPrefs
  • Шаблон Singleton

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

Нет ни одного золотого решения. Вы должны проанализировать вариант использования и выбрать наиболее подходящий для вас вариант.

0
Enrique Moreno Tent 21 Авг 2018 в 11:11
51936768