Объявление
public static bool IsSubAsset(Object obj);public static bool IsSubAsset(int instanceID);
Параметры
obj | Объект актива для запроса. |
instanceID | Идентификатор экземпляра объекта актива для запроса. |
Описание
Является ли объект частью другого объекта?
Некоторые активы могут быть частью другого актива (например, процедурный материал может быть частью пакета материалов). Эта функция сообщает, подчинен ли актив таким образом.
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));
//Создаем скриптовый объект
var scriptableAssetPath = "Assets/ScriptableObjects/NewObject.asset";
var mainAsset = ScriptableObject.CreateInstance();
AssetDatabase.CreateAsset(mainAsset, scriptableAssetPath);
//Add the MaterialAsset 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 AssetDebug.Log(AssetDatabase.IsSubAsset(materialAsset));
}
}