コンテンツにスキップ

EAUploader.Editor.Prefab.API

プレハブの操作、情報の取得に関わる公開APIです。 Editor/Public EAUploader API/のEAUploader.Editor.Prefab.API.cs、EAUploader.Editor.PrefabPreview.API.cs、EAUploader.Editor.Shader.API.cs、EAUploader.Editor.PrefabUtility.API.cs、EAUploader.Editor.VRM.API.csで定義されています(1クラス1ファイル)。

using EAUploader.Editor.Prefab.API;
ClassDescription
PrefabAPIプレハブの操作、情報の取得を提供するクラス
PrefabPreviewAPIプレハブのプレビュー画像を提供するクラス
ShaderAPIシェーダーの確認を提供するクラス
PrefabUtilityAPIアバターの情報の取得を提供するクラス
VRMAPIVRMのインポートを提供するクラス(VRM Converter for VRChat導入時のみ)

PrefabAPI


MethodTypeDescription
UpdatePrefabInfoVoid管理用Prefabを初期化し直します(管理フォルダ、移行、不足しているプレビュー画像)
ImportPrefabVoid指定したパスのプレハブをEAUploaderに取り込みます(管理用Prefab Variantを作成又は更新)
GetPrefabGameObject指定したパスのプレハブを取得します
ShowDeletePrefabDialogBoolプレハブの削除確認を表示します
DeletePrefabPreviewVoid指定したパスのプレハブのプレビュー画像を削除します
PinPrefabVoid指定したパスのプレハブのピン留めを切り替えます
GetAvatarDescriptorVRCAvatarDescriptor指定したパスのプレハブのVRCAvatarDescriptorを取得します
IsPinnedBool指定したパスのプレハブがピン留めされているか確認します
SavePrefabVoidプレハブを保存します
public static void UpdatePrefabInfo();
public static void ImportPrefab(string prefabPath);
public static GameObject GetPrefab(string prefabPath);
public static bool ShowDeletePrefabDialog(string prefabPath, Action<bool> completed);
[Obsolete] public static bool ShowDeletePrefabDialog(string prefabPath);
public static void DeletePrefabPreview(string prefabPath);
public static void PinPrefab(string prefabPath);
public static VRCAvatarDescriptor GetAvatarDescriptor(string prefabPath);
public static bool IsPinned(string prefabPath);
public static void SavePrefab(GameObject prefab, string path);
  • GetPrefab、GetAvatarDescriptorは、プレハブが見つからない場合nullを返します。
  • ImportPrefabは、管理されていないプレハブの場合は管理用Prefab Variant(Assets/EAUploader/Prefabs/<アイテム名>/)を作成し、管理用Prefabの場合は情報を更新します。元のプレハブは変更しません。Assets/の外、Assets/EAUploader/の中のプレハブ、既にVariantがあるプレハブからは作成しません。
  • ShowDeletePrefabDialog(path, completed)は、EAUploaderのウィンドウ内に削除確認のモーダルを開き、モーダルを開けた場合にtrueを返します。削除が完了するとcompleted(true)、キャンセルするとcompleted(false)が呼ばれます。プレハブと一緒に、元のプレハブやそのアイテムでしか使われていないマテリアル・テクスチャも削除されます。
  • 引数が1つのShowDeletePrefabDialog(path)は[Obsolete]です。互換性のために、Unityの標準の確認ダイアログを表示し、削除が完了した場合にtrueを返します。
  • PinPrefabは、ピン留めされていない場合はピン留めし、ピン留めされている場合は解除します。
  • SavePrefabは、GameObjectを指定したパスにプレハブとして保存し、ImportPrefabを実行します。

PrefabPreviewAPI


MethodTypeDescription
GeneratePreviewTexture2Dプレハブのプレビュー画像を生成します
GenerateAndSaveAllPrefabPreviewsVoidプレビュー画像が無いすべてのプレハブのプレビュー画像を生成して保存します
SavePrefabPreviewVoidプレハブのプレビュー画像を保存します
LoadTextureFromFileTexture2Dファイルからテクスチャを読み込みます
SaveTextureToFileVoidテクスチャをPNGファイルに保存します
GetPreviewImagePathStringプレハブのプレビュー画像のパスを取得します
GetPrefabPreviewTexture2Dプレハブのプレビュー画像を取得します
public static Texture2D GeneratePreview(GameObject prefab);
public static void GenerateAndSaveAllPrefabPreviews();
public static void SavePrefabPreview(string prefabPath, Texture2D preview);
public static Texture2D LoadTextureFromFile(string filePath);
public static void SaveTextureToFile(Texture2D texture, string filePath);
public static string GetPreviewImagePath(string prefabPath);
public static Texture2D GetPrefabPreview(string prefabPath);
  • プレビュー画像はAssets/EAUploader/PrefabPreviews/{PrefabのGUID}.pngに保存されます。名前を変えてもプレビュー画像は引き継がれます。
  • GeneratePreviewは、1200×900の画像を生成します。
  • GetPrefabPreviewは、プレビュー画像が存在しない場合nullを返します。

ShaderAPI


MethodTypeDescription
CheckShadersVoidAssets内のすべてのプレハブのシェーダーを確認します
GetExistingShadersListプロジェクトに導入されているシェーダーのグループ名の一覧を取得します
CheckShadersInPrefabsVoid指定したプレハブのシェーダーを確認します
CheckAvatarHasShaderBoolアバターに必要なシェーダーがすべて存在するか確認します
public static void CheckShaders();
public static List<string> GetExistingShaders();
public static void CheckShadersInPrefabs(string prefabPath);
public static bool CheckAvatarHasShader(GameObject avatar);
  • CheckShaders、CheckShadersInPrefabsは、シェーダーが不足しているプレハブがある場合にダイアログを表示します。
  • CheckAvatarHasShaderは、シェーダーが不足していない場合にtrueを返します。ダイアログは表示しません。

PrefabUtilityAPI


MethodTypeDescription
GetAvatarHeightFloatアバターの高さ(視点の高さ)を取得します
CheckAvatarHasVRCAvatarDescriptorBoolアバターがVRCAvatarDescriptorを持っているか確認します
CheckAvatarIsVRMBoolアバターがVRMか確認します
CheckAvatarHasTandOBoolアバターがAvatarOptimizerのTraceAndOptimizeを持っているか確認します
GetAvatarDescriptorVRCAvatarDescriptorアバターのVRCAvatarDescriptorを取得します
GetPipelineManagerPipelineManagerアバターのPipelineManagerを取得します
public static float GetAvatarHeight(GameObject avatar);
public static bool CheckAvatarHasVRCAvatarDescriptor(GameObject avatar);
public static bool CheckAvatarIsVRM(GameObject avatar);
public static bool CheckAvatarHasTandO(GameObject avatar);
public static VRCAvatarDescriptor GetAvatarDescriptor(GameObject avatar);
public static VRC.Core.PipelineManager GetPipelineManager(GameObject avatar);
  • GetAvatarHeightは、VRCAvatarDescriptorのViewPositionのY座標を返します。VRCAvatarDescriptorが無い場合は0を返します。
  • CheckAvatarHasVRCAvatarDescriptorは、avatarがnullの場合falseを返します。
  • CheckAvatarIsVRMは、VRM Converter for VRChatが導入されていない場合は常にfalseを返します。
  • CheckAvatarHasTandOは、AvatarOptimizerが導入されていない場合は常にfalseを返します。

VRMAPI


VRM Converter for VRChatが導入されている場合(HAS_VRMが定義されている場合)のみ使用できます。

MethodTypeDescription
ImportVRMVoidVRMファイルをインポートし、変換ウィンドウを表示します
public static void ImportVRM(string path = null);
  • pathを省略した場合は、ファイル選択ダイアログを表示します。
  • プロジェクトのAssets内にあるファイルは指定できません。
  • インポートしたVRMはAssets/VRM/{ファイル名}.prefabに保存されます。