Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


IsSubAsset

Checks whether the asset is part of another asset.
Read time 3 minutesLast updated 9 days ago

Definition

  • Type: Method
  • Namespace: UnityEditor
  • Assembly: UnityEditor

IsSubAsset(Object)

Checks whether the asset is part of another asset.
public static bool IsSubAsset(Object obj)

Parameters

The asset object to query.

Returns

Type

Description

boolTrue if the asset is part of another asset, otherwise false.

Remarks

Some assets may form part of another asset (for example, a procedural material can be part of a material package). This method determines whether an asset is subordinated in this way.

Examples

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

IsSubAsset(EntityId)

Checks whether the asset is part of another asset.
public static bool IsSubAsset(EntityId entityId)

Parameters

entityId

The EntityID of the asset object to query.

Returns

Type

Description

boolTrue if the asset is part of another asset, otherwise false.

Remarks

Some assets may form part of another asset (for example, a procedural material can be part of a material package). This method determines whether an asset is subordinated in this way.

Examples

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

IsSubAsset(int)

Checks whether the asset is part of another asset.
Warning
Deprecated. Please use IsSubAsset(EntityId) with the EntityId type instead.
public static bool IsSubAsset(int instanceID)

Parameters

instanceID

Instance ID of the asset object to query.

Returns

Type

Description

boolTrue if the asset is part of another asset, otherwise false.

Remarks

Some assets may form part of another asset (for example, a procedural material can be part of a material package). This method determines whether an asset is subordinated in this way.

Examples

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