EAUploader.Editor.API
与EAUploader整体、语言、上传相关的公开API。
定义在Editor/Public EAUploader API/EAUploader.Editor.API.cs中。
using EAUploader.Editor.API;| 类 | 说明 |
|---|---|
| CoreAPI | 提供与EAUploader整体相关的公开API |
| LanguageAPI | 提供与语言相关的公开API |
| UploadAPI | 提供与上传相关的公开API |
CoreAPI
| 方法 | 类型 | 说明 |
|---|---|---|
| SelectedPrefabPath | String | 获取或设置当前所选预制体的路径 |
| SelectedPrefabPathChanged | Event | 所选预制体的路径发生变化时触发 |
| HasVRM | Bool | 获取EAUploader中是否可以使用VRM |
| HasAvatarOptimizer | Bool | 获取是否可以使用Avatar Optimizer包 |
| GetVersion | String | 获取EAUploader的当前版本 |
| Reload | Void | 重新加载(初始化)EAUploader |
public static string SelectedPrefabPath { get; set; }public static event Action<string> SelectedPrefabPathChanged;public static bool HasVRM { get; }public static bool HasAvatarOptimizer { get; }public static string GetVersion(bool noText = false);public static void Reload();- 未选择物品时,
SelectedPrefabPath为null。所选物品是EAUploader管理的Prefab Variant的路径(Assets/EAUploader/Prefabs/下)。设置值后会触发SelectedPrefabPathChanged。 - 是否安装了Modular Avatar不在公开API中(内部通过
EAUploaderCore.HasMA判断)。 noText为true时,GetVersion只返回版本号(如1.6.2);为false时,返回包含”Version: 1.6.2”这类说明文字的字符串。Reload与菜单中的”EAUploader”→“Reload”作用相同。所选的预制体会被清除。
LanguageAPI
| 方法 | 类型 | 说明 |
|---|---|---|
| GetCurrentLanguage | String | 获取当前的语言代码 |
| Localize | Void | 对指定的VisualElement及其子元素的文本进行本地化 |
| LocalizeFromJsonFile | Void | 使用指定的JSON文件,对指定的VisualElement及其子元素的文本进行本地化 |
| GetLocalizedTextFromJsonFile | String | 从指定的JSON文件获取指定键的本地化文本 |
| ChangeLanguage | Void | 更改应用程序的语言 |
| GetAvailableLanguages | List | 获取可用语言的列表 |
public static string GetCurrentLanguage();public static void Localize(VisualElement root);public static void LocalizeFromJsonFile(VisualElement root, string localizationFolderPath);public static string GetLocalizedTextFromJsonFile(string key, string localizationFolderPath);public static void ChangeLanguage(string language);public static List<LanguageInfo> GetAvailableLanguages();- 语言代码为
en、ja、ko。 Localize使用EAUploader自身的翻译文件进行本地化。要本地化扩展功能自己的字符串,请使用LocalizeFromJsonFile。LocalizeFromJsonFile和GetLocalizedTextFromJsonFile使用的JSON文件格式,请参阅”快速入门指南”。- 找不到对应的文本时,
GetLocalizedTextFromJsonFile会原样返回键。 ChangeLanguage会更改设置文件中的语言。需要重新启动EAUploader才能切换显示。LanguageInfo包含name(语言代码)和display(显示名称)。
UploadAPI
| 方法 | 类型 | 说明 |
|---|---|---|
| OnUploadComplete | Event | 上传完成时触发 |
| UploadProgressChanged | Event | 上传进度变化时触发 |
| BuildAndTestAsync | Task | 执行构建并测试指定预制体的异步任务 |
| GetVRCAvatar | Task | 获取指定预制体的VRCAvatar信息 |
| UploadAvatarAsync | Task | 执行将指定预制体作为Avatar上传的异步任务 |
| UpdateVRCAvatar | Task | 执行更新指定预制体的VRCAvatar信息的异步任务 |
public static event EventHandler OnUploadComplete;public static event EventHandler<AvatarUploader.ProgressEventArgs> UploadProgressChanged;public static Task BuildAndTestAsync(string prefabPath);public static Task<VRCAvatar?> GetVRCAvatar(string prefabPath);public static Task UploadAvatarAsync(string prefabPath, string contentName, string contentDescription, string releaseStatus, List<string> tags, string thumbnailPath);public static Task UpdateVRCAvatar(string prefabPath, string contentName, string contentDescription, string releaseStatus, List<string> tags, string thumbnailPath);| 参数 | 内容 |
|---|---|
prefabPath | 预制体的路径 |
contentName | Avatar名称 |
contentDescription | Avatar说明 |
releaseStatus | 公开设置(private / public) |
tags | 标签(content_sex、content_adult、content_violence、content_gore、content_horror等) |
thumbnailPath | 缩略图的路径 |
UploadProgressChanged的ProgressEventArgs包含Status(进度说明)和Percentage(0到1的进度)。- 未登录VRChat、预制体没有
PipelineManager或Blueprint ID、或在VRChat上找不到Avatar时,GetVRCAvatar返回null。 - VRChat上不存在该Avatar时,
UploadAvatarAsync会作为新Avatar上传;存在时则更新该Avatar。通过公开API的上传仅面向Windows(PC)。 - 上传时会在场景中临时创建Prefab的副本。对于没有Blueprint ID的Prefab,会在上传前分配Blueprint ID。
- 同一时间只能执行一个构建或上传。
UpdateVRCAvatar不重新构建Avatar,只更新名称、说明等信息以及缩略图。- 使用这些方法需要登录VRChat SDK。