CRIWARE Unity Plugin Manual
Last Updated: 2024-07-12
[CriFs] 目录绑定
范例描述
概述
该范例使用了目录绑定功能。
目录绑定功能将文件绑定至指定目录。 当目录绑定时,没有文件会被打开。 只有在文件被访问的时候(比如加载它们),文件才会被打开,文件大小也才会被获取。
该过程比使用CPK文件无效率得多,因为在使用CPK文件时,文件能提前打开,文件大小也能提前获取。
因此我们推荐你在启动应用程序前,将文件打包成更有效率的CPK文件。然而,目录绑定可用于开发阶段。
在此范例中,对StreamingAssets下不同层级结构中的目录进行多路绑定。 我们假设早期在开发阶段提供的数据文件存储于StreamingAssets中, 并且假定数据文件将被更新到另一个目录。
数据创建者只需将最新文件放在指定目录中, 游戏就可以更新数据文件而无需对本身进行任何更改。
操作方法
步骤1: 绑定目录
Bind Base Directory
按钮
绑定基本目录。
Bind Update Directory
按钮
绑定您要放置更新文件的目标目录。
Unbind Directory
按钮
解除目录的绑定。
步骤2: Load File
Load Text File
按钮
从目录中加载一个文本文件。
Reset
按钮
将设定重置。
场景信息
中间件
FileMajik PRO (CRI File System)
范例
Basic samples(基础范例)
存储路径
/CRIWARE/SDK/unity/samples/UnityProject/Assets/Scenes/crifilesystem/basic/
场景文件
Scene_05_BindDirectory.unity
程序描述
this.binder =
new
CriFsBinder();
首先,在应用程序中创建一个绑定器。
将普通文件,CPK文件等绑定至该绑定器
/* 将CPK文件内容绑定至指定的绑定器句柄 */
var request = CriFsUtility.BindDirectory(this.binder, null, path);
发送绑定目录的请求。绑定将在后台异步进行。
设置目标绑定器。使用目录的路径来绑定。
/* 等待绑定完成 */
yield
return
request.WaitForDone(
this
);
if
(request.error == null) {
:
:
等待绑定CPK文件的完成。
如果返回的是null,那么绑定便成功了。
/* 如果绑定成功,请将binding(绑定)ID存储于应用程序 */
/* Binding ID将在之后用于解除绑定 */
this.bindId[bind_index] = request.bindId;
/* 设定查找的优先顺序 */
/* 数值越大就越优先。 */
/* 在此示例中,更新文件端的CPK始终在基本CPK之前被搜索。 */
CriFsBinder.SetPriority(this.bindId[bind_index], bind_index);
如果绑定成功,应用程序必须存储binding ID,它是"request"对象的一员。
指定该binding ID并使用
CriFsBinder.SetPriority()
来设置查找的优先顺序。
该范例使用多路绑定来绑定本地目录以及远程服务器上的目录。
如需了解更多有关多路绑定的信息,请查看
[CriFs] 目录绑定
。
/* 将文件加载请求发送至绑定CPK文件的绑定器 */
var request = CriFsUtility.LoadFile(this.binder, path);
/* 等待加载完成 */
yield
return
request.WaitForDone(
this
);
当加载文件时,指定多路绑定的绑定器。
目录的绑定将以优先顺序进行查找,然后文件将被加载。
在此范例中,因为更新文件的目标目录的搜索优先级被提高,因此,如果此目录中的文件被更新,则应用程序将优先从这里加载文件。
Copyright (c) CRI Middleware Co., Ltd. 1.8.10