官方文档

开始

  • README
  • 快速入门

使用指南

  • Android申请读写权限配置流程
  • 创建存档系统配置(FlexiArchiveSetting)
  • 创建存档系统
  • 创建自定义数据类型
  • 存档的读写
  • 对象字段与数据绑定 – 简化存档流程
  • 保存存档
  • 切换存档
  • 克隆存档
  • 删除存档

FAQ

  • 安卓上无法正常工作怎么办?
  • 支持跨平台吗?

其他

  • Github
  • 首页
  • Docs
  • Flexi Archive
  • 使用指南

在Flexi Archive中,你可以将存档数据与对象的属性进行绑定。这意味着,你对字段成员的访问与赋值,等同于对存档数据的读写。

这一绑定机制简化了数据管理的流程,无需你手动编写过程代码来处理数据的读写操作。大大减少了开发时间和维护成本。

示例代码:Sample/Scripts/DataContainerForSave_Sample.cs

示例 #

FlexiDataContainer #

Flexi Archive 提供了一个专用于容纳数据属性 的 FlexiDataContainer 数据容器类。

如果你也恰有类似这样的一个设计,并且希望你的类能够利用 FlexiDataContainer ,你可以通过继承 FlexiDataContainer 来实现这一点。但是要注意,一旦继承FlexiDataContainer,继承结构就被确定了,无法再继承其他类。(你如果追求更高的灵活度,推荐你以实现接口的方式来达到同样的目的。)

public class DataContainerForSave_Sample : FlexiDataContainer
    {
        public string author
        {
            get => GetMemoryValue<DataString, string>("FlexiDataSave","author");
            set => ModifyValue<DataString, string>("FlexiDataSave","author", value);
        }
        
        public int age
        {
            get => GetMemoryValue<DataInteger, int>("FlexiDataSave","age");
            set => ModifyValue<DataInteger, int>("FlexiDataSave","age", value);
        }
    
        public DataContainerForSave_Sample(IFlexiDataArchiveManager dataArchiveManager)
        {
            SetDataArchiveManager(dataArchiveManager);
        }
    }

实现接口或直接调用 #

public class DataContainerForSave_Sample2 : IFlexiWriteOrReadArchiveOperation
    {
        public IFlexiDataArchiveManager DataArchiveManager => DataManagerSample.instance;
        public string author
        {
            get => GetMemoryValue<DataString, string>("FlexiDataSave","author");
            set => ModifyValue<DataString, string>("FlexiDataSave","author", value);
        }
        
        public int age
        {
            get => GetMemoryValue<DataInteger, int>("FlexiDataSave","age");
            set => ModifyValue<DataInteger, int>("FlexiDataSave","age", value);
        }
        

        public DiskAndMemoryData<TValue> GetValue<TDataType,TValue>(string GroupKey, string SubKey) where TDataType: AbstractDataTypeWrapper<TValue>
        {
            return DataArchiveManager.GetValue<TDataType,TValue>(GroupKey, SubKey);
        }
        
        public TValue GetDiskValue<TDataType,TValue>(string GroupKey, string SubKey) where TDataType: AbstractDataTypeWrapper<TValue>
        {
            return DataArchiveManager.GetDiskValue<TDataType,TValue>(GroupKey, SubKey);
        }
        
        public TValue GetMemoryValue<TDataType,TValue>(string GroupKey, string SubKey) where TDataType: AbstractDataTypeWrapper<TValue>
        {
            return DataArchiveManager.GetMemoryValue<TDataType,TValue>(GroupKey, SubKey);
        }

        public void ModifyValue<TDataType,TValue>(string GroupKey, string SubKey, TValue value) where TDataType: AbstractDataTypeWrapper<TValue>
        {
            DataArchiveManager.ModifyValue<TDataType, TValue>(GroupKey, SubKey, value);
        }
    }

 

接口介绍 #

获取磁盘上数据 #

GetDiskValue<TDataType,TValue>(string GroupKey, string SubKey)

该函数根据键来获取其在磁盘上的数据。

TDataType : AbstractDataTypeWrapper实现类(数据类型封装类)

TValue: 值的类型

返回值 :TValue

获取内存上数据 #

GetMemoryValue<TDataType,TValue>(string GroupKey, string SubKey)

该函数根据键来获取其在内存上的数据。

返回值 :TValue

获取磁盘与内存上数据 #

GetValue<TDataType,TValue>(string GroupKey, string SubKey)

该函数根据键来获取其在磁盘与内存的两份数据。

返回值:DiskAndMemoryData<TValue>  diskAndMemoryData

内存数据 :diskAndMemoryData.data

磁盘数据 :diskAndMemoryData.diskData

修改数据 #

ModifyValue<TDataType,TValue>(string GroupKey, string SubKey, TValue value)

传入键与值,修改数据。(遵循Flexi Archive 保存点触发机制)

 

有疑问?需要帮助?

有疑问?需要帮助?

Updated on 2024年10月14日
存档的读写保存存档
Table of Contents
  • 示例
    • FlexiDataContainer
    • 实现接口或直接调用
  • 接口介绍
    • 获取磁盘上数据
    • 获取内存上数据
    • 获取磁盘与内存上数据
    • 修改数据
  • 首页
  • UML
  • Github
  • 知乎
  • Flexi Archive
Copyright © 2025 温文的小屋
闽ICP备2022009151号-2

一个好的游戏不仅仅可以玩,更可以向玩家传递一种境界,真正做到第九艺术的诠释。 –陈星汉