うにてぃブログ

主にUnityとC#に関する記事を書いていきます

AssetDatabase

【Unity】スクリプトが MonoBehaviour を継承しているクラスかどうかを判定する

using UnityEditor; using UnityEngine; public static class AssetUtility { /// <summary> /// スクリプトが MonoBehaviour を継承しているかどうか /// </summary> /// <param name="path"></param> /// <returns></returns> public static bool IsMonoBehaviour(string path) { var assetType = AssetDatabase.GetMainAsset…

【Unity】パスを指定してディレクトリを作成する

UnityProject 内部 で ディレクトリを作成する方法として AssetDatabase.CreateFolder と System.IO.Directory.CreateDirectory(path) の2つが存在します 2つの違いを以下のとおりです AssetDatabase.CreateFolder "Assets/" から始まるディレクトリパスを指…

【Unity】UnityProject 外のファイルを UnityProject にコピーする

UnityProject 内のファイル操作なら AssetDatabase を利用すれば可能ですが UnityProject 外からファイルを操作する場合は System.IO 系を利用する必要があり こちらはルートからのフルパスで指定する必要がある ※ AssetDatabase であれば "Assets/" から始…

【Unity】UnityEditor 上で アセットバンドルネームのついているアセットを探す

AssetDatabase.GetAssetPathsFromAssetBundle を利用することで Asset に設定してある assetBundleName が一致するアセットのパスを取得できます アセットバンドル名は重複を許可しているため、複数のパスが取得することができるので注意が必要です using Un…

【C#】System.IO 操作系処理 (Path, Directory, StreamReader) + AssetDatabase

System.IO.Path var basePath = "/Users/hatch/git/Unity/Blog/Assets/Script/SampleMonoBehaviour.cs"; // 環境毎のファイルパスの区切りに変換 var path = basePath.Replace('/', System.IO.Path.DirectorySeparatorChar); // ファイル名 System.IO.Path.G…