跳转至

API 参考

Uniasset 的 C# SDK 提供了高层级的 API,用于在 Unity 中加载和处理图片与音频资源。

命名空间概览

命名空间 说明
Uniasset 核心类型,包括流接口和流包装器
Uniasset.Image 图片相关类型
Uniasset.Audio 音频相关类型

核心类型

ImageAsset

图片资源类,支持从文件、字节数组或自定义流加载图片,提供裁剪、缩放、克隆等操作。

var image = new ImageAsset();
image.Load("photo.png");
Texture2D texture = image.ToTexture2D();
image.Dispose();

AudioAsset

音频资源类,支持从文件、字节数组或自定义流加载音频,提供读取 PCM 数据、转换为 AudioClip 等操作。

var audio = new AudioAsset();
audio.Load("music.mp3");
AudioClip clip = audio.ToAudioClip();
audio.Dispose();

CropOptions

裁剪区域描述结构体,用于批量裁剪操作。

var crops = new CropOptions[]
{
    new CropOptions(0, 0, 100, 100),
    new CropOptions(100, 0, 100, 100),
};
ImageAsset[] results = image.CropMultiple(crops);

SampleFormat

音频采样格式枚举,支持 FloatInt16 两种格式。

IUniassetStream

自定义流接口,允许从任意数据源加载资源。

public interface IUniassetStream
{
    int Read(Span<byte> buffer);
    long Seek(long offset, SeekOrigin origin);
}

StreamWrapper

System.IO.StreamIUniassetStream 的适配器。

使用模式

同步加载

var asset = new ImageAsset();
asset.Load("path/to/file.png");
// 使用资源...
asset.Dispose();

异步加载

var asset = new ImageAsset();
await asset.LoadAsync("path/to/file.png");
// 使用资源...
asset.Dispose();

使用 using 语句

由于 ImageAssetAudioAsset 都实现了 IDisposable,推荐使用 using 语句:

using (var image = new ImageAsset())
{
    image.Load("photo.png");
    Texture2D texture = image.ToTexture2D();
    // texture 在 using 块结束后仍然有效
}

异常处理

当原生库发生错误时,会抛出 NativeException。建议在调用可能失败的操作时使用 try-catch:

try
{
    var image = new ImageAsset();
    image.Load("nonexistent.png");
}
catch (NativeException e)
{
    Debug.LogError($"加载失败: {e.Message}");
}