obj | 検証されるアセットオブジェクト |
instanceID | 検証されるアセットオブジェクトのインスタンス ID |
このアセットが他のアセットの一部かどうか。
アセットの中には、他のアセットの一部になっているものがあります (例えば、プロシージャルマテリアルはマテリアルパッケージに含まれます)。この関数は、アセットがこのようなサブアセットかどうかを検証します。
using UnityEditor; using UnityEngine; public class Scriptable : ScriptableObject { }
public class AssetDatabaseExamples : MonoBehaviour { [MenuItem("AssetDatabase/Is Sub Asset Example")] static void IsSubAssetExample() { var materialAsset = new Material(Shader.Find("Standard")); //materialAsset is still in memory, therefore this will be False Debug.Log(AssetDatabase.IsSubAsset(materialAsset));
//Create a Scriptable object var scriptableAssetPath = "Assets/ScriptableObjects/NewObject.asset"; var mainAsset = ScriptableObject.CreateInstance<Scriptable>(); AssetDatabase.CreateAsset(mainAsset, scriptableAssetPath);
//Add the Material Asset to the Scriptable object, so that the Material becomes a Sub Asset of the Scriptable object AssetDatabase.AddObjectToAsset(materialAsset, scriptableAssetPath); AssetDatabase.SaveAssets();
//This will be True because the Material asset has been added to the mainAsset and is now a Sub Asset Debug.Log(AssetDatabase.IsSubAsset(materialAsset)); } }