c# - 下载和缓存离线数据(图像/视频/3d 模型)的代码架构应该是什么?

标签 c# algorithm design-patterns architecture software-design

我正在开发一个具有 3D 房间的应用程序。每个房间都是 3d 模型,可以包含媒体板。每个媒体板都包含幻灯片或视频形式的图像。我创建了以下数据模型:

class Room {
 string id;
 string room3dmodellink;
 List<Mediaboards> mediaboards;
}

class Mediaboard{
 string id;
 string mediaboard3dModleLink;
 List<Slide> slides;
}

class Slide{
 string id;
 string imageLink;
}

这些数据模型是从服务器填充的。我需要知道如何构建此代码以下载和缓存本地存储中的所有模型和图像,并按需从缓存中获取/加载,还应该有更新缓存/离线数据的机制。我应该在哪里存储本地下载的模型和图像的路径?在这些模型中存储下载图像/模型的路径对我来说没有意义。需要建议/解决方案。 谢谢

P.S:我使用的是 Unity 3D 和 C#。

最佳答案

Unity 在 PlayerPrefs 中隐藏了此类信息. 这允许在所有平台上保持正常。

您还可以使用 Application.persistentDataPath ,它也适用于所有平台。 在其中,存储机制是您的。

要处理此缓存,每个对象都需要一个唯一的 ID,您可以检查版本(或任何等效值),以便您知道何时需要更新缓存的对象。

缓存需要包含某种索引表,允许在给定其 id 的情况下检索缓存中需要的元素。该表是缓存的一部分(因此,它也在 Application.persistentDataPath 中)。

您可能还想删除最旧或很少使用的元素。因此您的缓存将需要存储这些信息。

关于c# - 下载和缓存离线数据(图像/视频/3d 模型)的代码架构应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53821000/

相关文章:

Java:为每个扩展类创建一个抽象方法

c# - 动态获取类中组件的属性值

c# - 在 emptydata 模板 gridview 中使用客户端脚本代码

c# - 从 C# 调用 powershell cmdlet

javascript - 使用类和原型(prototype)模式未定义组件的属性

design-patterns - 这个 UI 模式的名称是什么?

c# - LINQ ToDictionary 和 ToLookup 有什么区别

algorithm - 如何计算多标签分配的分类任务的成功率

algorithm - 我怎样才能改进这个程序以获得 4 个数字的 24?

c# - 选择排序算法排序错误