Uniasset
高性能 Unity 外部资源加载插件
基于 Rust 原生库,为 Unity 提供安全、高效、异步的图片与音频加载能力,让资源管理不再拖慢你的项目。
原生加载缓慢
UnityWebRequest 和 WWW 在主线程造成卡顿,复杂资源解码耗时严重。
GC 压力大
大量托管内存分配导致频繁 GC 触发,运行时性能波动剧烈。
格式支持有限
Unity 原生支持的音频格式不足,处理 FLAC、AAC、Vorbis 等格式需要额外方案。
缺乏灵活的数据源
无法方便地从网络流、加密包或自定义存储层加载资源。
极致性能
底层由 Rust 编写,通过 P/Invoke FFI 直接调用原生代码。零 GC 压力,充分利用系统硬件加速。
异步优先
所有耗时操作均提供 async/await 异步 API,天然适配 Unity 的协程与 Task 体系,告别主线程阻塞。
多格式图片
支持 JPEG、WebP、PNG、BMP、TGA、PSD,内置裁剪、缩放、格式转换、克隆等完整图像处理管线。
多格式音频
覆盖 MP3、FLAC、WAV、PCM、Vorbis、OGG、AAC 七种音频格式,自动识别采样格式与声道布局。
自定义数据源
实现 IUniassetStream 接口,即可从任意来源加载资源 — 网络流、加密包、AssetBundle、内存缓存。
一键集成
下载 Release 中的 uniasset-unity-scripts.zip,再通过编辑器菜单下载并配置原生库。
完全异步的 C# API 层,提供 ImageAsset、AudioAsset 等高级抽象,与 Unity 生态无缝集成。
轻量级跨语言调用层,C# 通过平台调用直接与原生库交互,零中间层、零序列化开销。
高性能 Rust 核心,负责编解码、数据处理与内存管理。编译为各平台原生二进制,安全且高效。
using Uniasset;
using Uniasset.Image;
using var image = new ImageAsset();
await image.LoadAsync("photo.png");
// 裁剪 & 缩放
await image.CropAsync(0, 0, 256, 256);
await image.ResizeAsync(128, 128);
// 转换为 Texture2D
Texture2D texture = await image.ToTexture2DAsync();
using Uniasset;
using Uniasset.Audio;
using var audio = new AudioAsset();
audio.Load("music.mp3");
// 获取音频信息
Debug.Log($"采样率: {audio.SampleRate} Hz");
Debug.Log($"声道数: {audio.ChannelCount}");
// 转换为 AudioClip 播放
AudioClip clip = audio.ToAudioClip();
安装包
下载 Release 中的 uniasset-unity-scripts.zip,解压到项目目录中。
安装原生库
在 Unity Editor 中依次点击以下菜单:
Tools > Uniasset > Download Native Libraries
Tools > Uniasset > Configure Native Libraries
开始使用
在脚本顶部添加命名空间引用后,即可开始加载资源:
using Uniasset;
using Uniasset.Image;
using var image = new ImageAsset();
await image.LoadAsync("assets/photo.png");
准备好提升你的 Unity 项目了吗?
为你的项目添加高性能、异步、多格式的资源加载能力。
阅读文档开始使用