跳转到内容

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


方法类型说明
SelectedPrefabPathString获取或设置当前所选预制体的路径
SelectedPrefabPathChangedEvent所选预制体的路径发生变化时触发
HasVRMBool获取EAUploader中是否可以使用VRM
HasAvatarOptimizerBool获取是否可以使用Avatar Optimizer包
GetVersionString获取EAUploader的当前版本
ReloadVoid重新加载(初始化)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


方法类型说明
GetCurrentLanguageString获取当前的语言代码
LocalizeVoid对指定的VisualElement及其子元素的文本进行本地化
LocalizeFromJsonFileVoid使用指定的JSON文件,对指定的VisualElement及其子元素的文本进行本地化
GetLocalizedTextFromJsonFileString从指定的JSON文件获取指定键的本地化文本
ChangeLanguageVoid更改应用程序的语言
GetAvailableLanguagesList获取可用语言的列表
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


方法类型说明
OnUploadCompleteEvent上传完成时触发
UploadProgressChangedEvent上传进度变化时触发
BuildAndTestAsyncTask执行构建并测试指定预制体的异步任务
GetVRCAvatarTask获取指定预制体的VRCAvatar信息
UploadAvatarAsyncTask执行将指定预制体作为Avatar上传的异步任务
UpdateVRCAvatarTask执行更新指定预制体的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预制体的路径
contentNameAvatar名称
contentDescriptionAvatar说明
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。