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 :
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 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
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"
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
- com.neuecc.unirx :
https://github.com/neuecc/UniRx.git?path=Assets/Plugins/UniRx/Scripts
- com.cysharp.unitask :
https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask
- io.nekonya.tinax.core :
git://github.com/yomunsam/TinaX.Core.git
if you install packages by git UPM, You need to install the dependencies manually. Or dependencies will installed automatically by NPM / OpenUPM
You can find out how to use the various features of TinaX in the documentation
The following excellent third-party libraries are used in this project: