IsMainAsset
Checks whether an asset object is the main asset of its file in the Project window.
Read time 2 minutesLast updated 3 days ago
Definition
- Type: Method
- Namespace: UnityEditor
- Assembly: UnityEditor.CoreModule
IsMainAsset(Object)
Checks whether an asset object is the main asset of its file in the Project window.
public static bool IsMainAsset(Object obj)
Parameters
The asset object to check.
Returns
Type | Description |
|---|---|
| bool | True if the asset is a main asset. Otherwise, false. |
Remarks
A file can contain several assets, but only one of them is the main asset. For example, an imported model contains a root GameObject, meshes, and child GameObjects. The root GameObject is the main asset.
Examples
using UnityEditor;using UnityEngine;public class Scriptable : ScriptableObject{}public class AssetDatabaseExamples : MonoBehaviour{ [MenuItem("AssetDatabase/Is Main Asset Example")] static void IsMainAssetExample() { var materialAsset = new Material(Shader.Find("Standard")); //materialAsset is still in memory, therefore this will be False Debug.Log(AssetDatabase.IsMainAsset(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 false because material asset has been added to the main Asset and is now a Sub Asset Debug.Log(AssetDatabase.IsMainAsset(materialAsset)); //Remove the subAsset from the Scriptable object and create it as an Asset AssetDatabase.RemoveObjectFromAsset(materialAsset); AssetDatabase.CreateAsset(materialAsset, "Assets/Materials/New Mat0.mat"); //This will be True because the material is now the main Asset Debug.Log(AssetDatabase.IsMainAsset(materialAsset)); }}
IsMainAsset(EntityId)
Checks whether the asset with the specified EntityId is the main asset of its file in the Project window.
public static bool IsMainAsset(EntityId entityId)
Parameters
The EntityId of the asset to check.
Returns
Type | Description |
|---|---|
| bool | True if the asset is a main asset. Otherwise, false. |
Remarks
A file can contain several assets, but only one of them is the main asset. For example, an imported model contains a root GameObject, meshes, and child GameObjects. The root GameObject is the main asset.
IsMainAsset(int)
Checks whether the asset with the specified instance ID is the main asset of its file in the Project window.
public static bool IsMainAsset(int instanceID)
Parameters
The instance ID of the asset to check.
Returns
Type | Description |
|---|---|
| bool | True if the asset is a main asset. Otherwise, false. |
Remarks
This overload is obsolete. Use the overload that takes an EntityId instead.