Tina X VFS by yomunsam - 3

Frameworks

Virtual Files System - Assets management service package for TinaX Framework to Unity

Unknown VersionOtherUpdated 7 days agoCreated on December 10th, 2019
Go to source

TinaX Framework - Virtual Files System.

logo

LICENSE 996.icu LICENSE

TinaX is a Unity-based framework, simple , complete and delightful, ready to use. TinaX provides functionality in the form of “Unity packages”.

TinaX.VFS is the default assets management serivce package of TinaX Framework.

  • Load assets according to "unity asset path:. And keep it consistent after editor and release
  • Non-aware AssetBundle management
  • AssetBundle packaging
  • Assets hot update

package name: io.nekonya.tinax.vfs


“Readme” in other languages :



QuickStart

The main service interface of VFS:

TinaX.VFSKit.IVFS

Facade of the main service interface:

TinaX.VFSKit.VFS

Load asset.

IAsset txt_asset = vfs.LoadAsset<TextAsset>("Assets/Data/demo.json"); //The object "vfs" (type: IVFS) can be obtained through dependency injection. or use facade.

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

Debug.Log(myText.text);

txt_asset.Release(); //After use, notify vfs to release

Load asset async (async/await)

IAsset txt_asset = await vfs.LoadAssetAsync<TextAsset>("Assets/Data/demo.json")
//The object "vfs" (type: IVFS) can be obtained through dependency injection. or use facade.
Debug.Log(txt_asset.Get<TextAsset>().text);
txt_asset.Release();

Load asset async (callback)

vfs.LoadAssetAsync("Assets/Data/demo.json", typeof(TextAsset), (txt, err) =>
{
    //The object "vfs" (type: IVFS) can be obtained through dependency injection. or use facade.
    if (err == null)
    {
        Debug.Log(txt.Get<TextAsset>().text);
        txt.Release();
    }
});

Simplify “IAsset.Release()”

using(txt_asset = await vfs.LoadAssetAsync<TextAsset>("Assets/Data/demo.json"))
{
    Debug.Log(txt_asset.Get<TextAsset>().text);
}
//The object "vfs" (type: IVFS) can be obtained through dependency injection. or use facade.

Not load IAsset interface, but directly load asset.

TextAsset myText = vfs.LoadAsync<TextAsset>("Assets/Data/demo.json");
//The object "vfs" (type: IVFS) can be obtained through dependency injection. or use facade.
Debug.Log(myText.text);
vfs.Release(myText);

For other usages, please read the documentation.



Install this package

Install via 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

Install via npm (UPM)

Modify Packages/manifest.json file in your project, and add the following code before “dependencies” node of this file:

"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"
        ]
    }
],

If after doing the above, you still cannot find the relevant Packages for TinaX in the “Unity Package Manager” window, You can also try refreshing, restarting the editor, or manually adding the following configuration to “dependencies” node.

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

Install via git UPM:

You can use the following to install and use this package in UPM GUI.

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

If you want to set a target version, you can use release tag like #6.6.3. for detail you can see this page: https://github.com/yomunsam/TinaX.VFS/releases



Dependencies

if you install packages by git UPM, You need to install the dependencies manually. Or dependencies will installed automatically by NPM / OpenUPM




Learn TinaX

You can find out how to use the various features of TinaX in the documentation


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.
Show all projects by yomunsam