35 lines
1.4 KiB
C#
35 lines
1.4 KiB
C#
using System.IO;
|
|
using UnityEditor;
|
|
|
|
namespace Live2D.Cubism.Editor
|
|
{
|
|
public class CubismUnityEditorUtility
|
|
{
|
|
/// <summary>
|
|
/// Projectウィンドウで現在選択しているディレクトリのパスを取得。
|
|
/// Projectウィンドウ以外が選択されていたり、何も選択されていない場合、返す値はAssets直下。
|
|
/// </summary>
|
|
/// <returns>Projectウィンドウで現在のディレクトリのパス</returns>
|
|
public static string GetCurrentDirectoryPath()
|
|
{
|
|
var activeObject = Selection.activeObject;
|
|
// [Unity6.5] GetInstanceID()가 obsolete error — GetAssetPath(EntityId) 오버로드로 교체.
|
|
// SDK 5-r.5는 Unity 6.0 기준이라 미대응. 대응 버전이 나오면 이 줄을 되돌릴 것.
|
|
var currentDirectoryPath = ((activeObject == null)
|
|
? "Assets"
|
|
: AssetDatabase.GetAssetPath(activeObject.GetEntityId()));
|
|
|
|
if (string.IsNullOrEmpty(currentDirectoryPath))
|
|
{
|
|
currentDirectoryPath = "Assets";
|
|
}
|
|
else if (!Directory.Exists(currentDirectoryPath))
|
|
{
|
|
currentDirectoryPath = currentDirectoryPath.Replace("/" + Path.GetFileName(currentDirectoryPath), "");
|
|
}
|
|
|
|
return currentDirectoryPath;
|
|
}
|
|
}
|
|
}
|