Skip to content

Latest commit

 

History

History
215 lines (144 loc) · 6.89 KB

README_CN.md

File metadata and controls

215 lines (144 loc) · 6.89 KB

TinaX Framework - Virtual Files System.

logo

LICENSE 996.icu LICENSE

TinaX是一个简洁、完整、愉快的开箱即用的Unity应用游戏开发框架, 它采用"Unity 包"的形式提供功能。

TinaX.VFS 是TinaX Framework默认的资产管理服务包.

  • 根据Unity Asset Path加载资产,
  • 无感知的AssetBundle管理
  • AssetBundle打包
  • 资产热更新

package name: io.nekonya.tinax.vfs



QuickStart

VFS的主要服务接口:

TinaX.VFSKit.IVFS

主要服务接口的Facade

TinaX.VFSKit.VFS

加载Unity资产:

IAsset txt_asset = vfs.LoadAsset<TextAsset>("Assets/Data/demo.json"); //对象"vfs" (类型为 IVFS)可通过依赖注入等方式获取,或者使用Facade.

TextAsset myText = txt_asset.Get<TextAsset>();
//or TextAsset myText = txt_asset.Asset as TextAsset;

Debug.Log(myText.text);

txt_asset.Release(); //使用后释放资产,以免内存泄漏

异步方式加载资产(async/await)

IAsset txt_asset = await vfs.LoadAssetAsync<TextAsset>("Assets/Data/demo.json")
//对象"vfs" (类型为 IVFS)可通过依赖注入等方式获取,或者使用Facade.
Debug.Log(txt_asset.Get<TextAsset>().text);
txt_asset.Release();

异步方式加载资产 (回调)

vfs.LoadAssetAsync("Assets/Data/demo.json", typeof(TextAsset), (txt, err) =>
{
    //对象"vfs" (类型为 IVFS)可通过依赖注入等方式获取,或者使用Facade.
    if (err == null)
    {
        Debug.Log(txt.Get<TextAsset>().text);
        txt.Release();
    }
});

简化 IAsset.Release()

using(txt_asset = await vfs.LoadAssetAsync<TextAsset>("Assets/Data/demo.json"))
{
    Debug.Log(txt_asset.Get<TextAsset>().text);
}
//对象"vfs" (类型为 IVFS)可通过依赖注入等方式获取,或者使用Facade.

不加载 IAsset 接口, 而是直接获取资产本身.

TextAsset myText = vfs.LoadAsync<TextAsset>("Assets/Data/demo.json");
//对象"vfs" (类型为 IVFS)可通过依赖注入等方式获取,或者使用Facade.
Debug.Log(myText.text);
vfs.Release(myText);

更多用法请 查看文档.



安装

使用OpenUPM安装

# Install openupm-cli if not installed.
npm install -g openupm-cli
# OR yarn global add openupm-cli

#run install in your project root folder
openupm add io.nekonya.tinax.vfs

通过npm安装 (UPM)

修改您的工程中的Packages/manifest.json 文件,并在文件的"dependencies"节点前添加如下内容:

"scopedRegistries": [
    {
        "name": "TinaX",
        "url": "https://registry.npmjs.org",
        "scopes": [
            "io.nekonya"
        ]
    },
    {
        "name": "package.openupm.com",
        "url": "https://package.openupm.com",
        "scopes": [
            "com.cysharp.unitask",
            "com.neuecc.unirx"
        ]
    }
],

如果在进行上述操作后,您仍然未能在"Unity Package Manager"窗口中找到TinaX的相关Packages,您也可以尝试刷新、重启编辑器,或手动添加如下配置到"dependencies":

"io.nekonya.tinax.vfs" : "6.6.3"

通过Git方式安装(UPM)

你可使用如下地址在Unity Package Manager窗口中安装本包:

git://github.com/yomunsam/TinaX.VFS.git

如果您想手动指定安装某个本本, 您可以使用 release tag, 例如 #6.6.3. 或访问Release页面了解细节: https://github.com/yomunsam/TinaX.VFS/releases

如不指定版本,Unity将会安装当前git仓库中的最新版本,可能会造成兼容性错误。


特殊地区用户指引

由于部分中文开发者居住和生活的地区较为特殊,可能无法以全世界大多数人相同的方式使用互联网。如果在安装时出现问题,可尝试使用如下方式解决:

  • 请尽可能努力以各种方式与全世界大多数人保持同样的网络环境。
  • 尝试使用cnpm镜像,包括UPM方式和OpenUPM方式
  • 使用openupm时,您可按照此处说明尝试使用第三方register
    • 需要说明的是,TinaX的第三方依赖,比如UniRx并没有发布到npmjs.org, 因此在cnpm中也是找不到它的。
  • 如果下载源码遇到困难,可以试试从TinaX在Gitee的镜像下载
  • 可以在同一个项目中使用不同的方式安装处理不同的packages,如你可以使用"Gitee"、"cnpm"等渠道安装TinaX packages,而如果实在下载不下来第三方依赖(如"Unirx")的话,直接给下载下来放在项目的Packages目录里也是可行的。(当然,把所有东西都一股脑扔进Packages目录也是可行的,不过这样可能升级的时候会不方便)



依赖

本项目(包)直接依赖以下包

如果您通过Git方式安装Package,那么您需要手动确保所有依赖项已被安装。如果使用NPM/OpenUPM安装本Package,则所有依赖都将自动被安装。




Learn TinaX

您可以访问TinaX的文档页面来学习了解各个功能的使用


Third-Party

本项目中使用了以下优秀的第三方库:

The following excellent third-party libraries are used in this project:

  • UniRx : Reactive Extensions for Unity
  • UniTask : Provides an efficient async/await integration to Unity.