# LoadObjectAsync(string, long)

> Loads a specific Object and its dependencies from an Asset file asynchronously.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.0/script-reference/unityeditor.md)
* **Assembly:** UnityEditor

```csharp
public static AssetDatabaseLoadOperation LoadObjectAsync(string assetPath, long localId)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Path of the asset to load.**** (\[long]\(https\://learn.microsoft.com/dotnet/api/system.int64)): The local identifier of the object that you want to load. This allows you to load a specific object and its dependencies as opposed to the entire asset.

### Returns

| Type                                                                                                    | Description                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AssetDatabaseLoadOperation](/engine/6000.0/script-reference/unityeditor/assetdatabaseloadoperation.md) | A [AssetDatabaseLoadOperation](/engine/6000.0/script-reference/unityeditor/assetdatabaseloadoperation.md) which you can use to track the progress of the operation. |

### Remarks

All paths are relative to the project folder, for example: "Assets/MyTextures/hello.png".

Additional Resources: [AssetDatabase.TryGetGUIDAndLocalFileIdentifier](/engine/6000.0/script-reference/unityeditor/assetdatabase/trygetguidandlocalfileidentifier.md), [GlobalObjectId.targetObjectId](/engine/6000.0/script-reference/unityeditor/globalobjectid/targetobjectid.md).

### Examples

```csharp
using UnityEngine;
using UnityEditor;
using System.Collections;

public class MyPlayer : MonoBehaviour
{
    public IEnumerator Start()
    {
        // This will load all objects in the fbx and return a single Mesh object.
        Mesh m = AssetDatabase.LoadAssetAtPath<Mesh>("Assets/test.fbx");

        AssetDatabase.TryGetGUIDAndLocalFileIdentifier(m, out string guid, out long localId);

        // At some point after the Mesh may or may not have unloaded we can reload just the mesh
        AssetDatabaseLoadOperation op = AssetDatabase.LoadObjectAsync("Assets/test.fbx", localId);

        // yield until the operation is completed
        while (!op.isDone)
            yield return null;

        Mesh reloadedMesh = (Mesh)op.LoadedObject;
    }
}
```
