为了账号安全,请及时绑定邮箱和手机立即绑定

我应该使用静态类来存储数据吗?

我应该使用静态类来存储数据吗?

C#
慕码人8056858 2021-12-05 17:06:50
我真的很难为我的 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;    }}但是,有没有更好的方法来做到这一点,或者这是一个很好的解决方案?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我认为更好的(代码将更具可读性和可维护性)选择是切换到enum:


  public enum Element {

    Water = 0,

    Lava = 1,

    Ice = 2, 

  };


  public enum Nature {

    Rock = 0,

    Bush = 1,

  };


  public enum Biome {

    Moutain = 0,

    River = 1,

  };

等enum是

  1. 更具可读性enum专为保存常量而设计)

  2. 打字,所以你永远不会int biome = Nature.Rock;因为Biome biome = Nature.Rock;不编译而犯错误。

  3. 更容易被修改(添加新项目,说SandNature


查看完整回答
反对 回复 2021-12-05
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

您是否考虑过将常量转换为枚举?


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,等)。


查看完整回答
反对 回复 2021-12-05
?
浮云间

TA贡献1829条经验 获得超3个赞

我在另一个 StackExchange 站点上提出了一个非常相似的问题,关于在我的游戏中存储数据的最佳方法是什么。那里有一个非常详细的答案,但简而言之,这里是您在游戏中存储数据的选项:

  • 静态脚本

  • 一个保存数据的游戏对象

  • 播放器首选项

  • 单例模式

很大程度上取决于您想如何管理您的数据,如果您想留在场景之间,您想多久读取一次数据或其他因素。

没有一种黄金解决方案。您必须分析用例,然后选择最适合您的选项。


查看完整回答
反对 回复 2021-12-05
  • 3 回答
  • 0 关注
  • 256 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信