Version: 2022.3
言語: 日本語
public static bool IsSubAsset (Object obj);
public static bool IsSubAsset (int instanceID);

パラメーター

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)); } }