컨텐츠로 건너뛰기

EAUploader.Editor.API

EAUploader 전체, 언어, 업로드에 관한 공개 API입니다. Editor/Public EAUploader API/EAUploader.Editor.API.cs에 정의되어 있습니다.

using EAUploader.Editor.API;
ClassDescription
CoreAPIEAUploader 전체에 관한 공개 API를 제공하는 클래스
LanguageAPI언어에 관한 공개 API를 제공하는 클래스
UploadAPI업로드에 관한 공개 API를 제공하는 클래스

CoreAPI


MethodTypeDescription
SelectedPrefabPathString현재 선택한 프리팹의 경로를 가져오거나 설정
SelectedPrefabPathChangedEvent선택한 프리팹의 경로가 바뀌었을 때 발생하는 이벤트
HasVRMBoolEAUploader에서 VRM을 사용할 수 있는지 나타내는 값을 가져옴
HasAvatarOptimizerBoolAvatar Optimizer 패키지를 사용할 수 있는지 나타내는 값을 가져옴
GetVersionStringEAUploader의 현재 버전을 가져옴
ReloadVoidEAUploader를 다시 불러옴(초기화)
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로 판정합니다).
  • GetVersion은 noText가 true이면 버전 번호만(예: 1.6.2), false이면 ‘버전: 1.6.2’처럼 설명 텍스트를 포함한 문자열을 반환합니다.
  • Reload는 메뉴의 ‘EAUploader’ → ‘Reload’와 같은 처리를 합니다. 선택한 프리팹은 해제됩니다.

LanguageAPI


MethodTypeDescription
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


MethodTypeDescription
OnUploadCompleteEvent업로드가 완료되었을 때 발생하는 이벤트
UploadProgressChangedEvent업로드 진행 상황이 바뀌었을 때 발생하는 이벤트
BuildAndTestAsyncTask지정한 프리팹을 빌드하여 테스트하는 비동기 작업을 실행
GetVRCAvatarTask지정한 프리팹의 VRCAvatar 정보를 가져옴
UploadAvatarAsyncTask지정한 프리팹을 아바타로 업로드하는 비동기 작업을 실행
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프리팹 경로
contentName아바타 이름
contentDescription아바타 설명
releaseStatus공개 상태(private / public)
tags태그(content_sex, content_adult, content_violence, content_gore, content_horror 등)
thumbnailPath썸네일 이미지 경로
  • UploadProgressChanged의 ProgressEventArgs는 Status(진행 상황 설명)와 Percentage(0~1의 진행률)를 가집니다.
  • GetVRCAvatar는 VRChat에 로그인하지 않았거나, 프리팹에 PipelineManager 또는 Blueprint ID가 없거나, VRChat에서 아바타를 찾지 못하면 null을 반환합니다.
  • UploadAvatarAsync는 VRChat에 아바타가 없으면 새로 업로드하고, 있으면 아바타를 업데이트합니다. 공개 API에서의 업로드는 Windows(PC)용만 지원합니다.
  • 업로드는 Prefab의 복사본을 씬에 임시로 만들어 진행합니다. Blueprint ID가 없는 Prefab에는 업로드 전에 Blueprint ID가 할당됩니다.
  • 빌드와 업로드는 동시에 하나만 실행할 수 있습니다.
  • UpdateVRCAvatar는 아바타를 다시 빌드하지 않고 이름, 설명 등의 정보와 썸네일을 업데이트합니다.
  • 이 메서드들을 사용하려면 VRChat SDK에 로그인되어 있어야 합니다.