# LoadFromFile

> Synchronously loads an AssetBundle from a file on disk.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.AssetBundleModule

## LoadFromFile(string)

Synchronously loads an AssetBundle from a file on disk.

```csharp
public static AssetBundle LoadFromFile(string path)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Path of the file on disk.

### Returns

| Type                                                                      | Description                                  |
| ------------------------------------------------------------------------- | -------------------------------------------- |
| [AssetBundle](/engine/6000.0/script-reference/unityengine/assetbundle.md) | Loaded AssetBundle object or null if failed. |

### Remarks

The function supports bundles of any compression type. In case of **LZMA** compression, the file content will be fully decompressed into memory and loaded from there. See AssetBundles compression for more details.

Compared to [AssetBundle.LoadFromFileAsync](/engine/6000.0/script-reference/unityengine/assetbundle/loadfromfileasync.md), this version is synchronous and will not return until it is done creating the AssetBundle object.

This is the fastest way to load an AssetBundle.

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

public class LoadFromFileExample : MonoBehaviour
{
    void Start()
    {
        var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "myassetBundle"));
        if (myLoadedAssetBundle == null)
        {
            Debug.Log("Failed to load AssetBundle!");
            return;
        }

        var prefab = myLoadedAssetBundle.LoadAsset<GameObject>("MyObject");
        Instantiate(prefab);

        myLoadedAssetBundle.Unload(false);
    }
}
```

Additional Resources: [AssetBundle](/engine/6000.0/script-reference/unityengine/assetbundle.md), [AssetBundle.LoadFromFileAsync](/engine/6000.0/script-reference/unityengine/assetbundle/loadfromfileasync.md).

## LoadFromFile(string, uint)

Synchronously loads an AssetBundle from a file on disk.

```csharp
public static AssetBundle LoadFromFile(string path, uint crc)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Path of the file on disk.**** (\[uint]\(https\://learn.microsoft.com/dotnet/api/system.uint32)): An optional CRC-32 checksum of the uncompressed content. If this is non-zero, then the content will be compared against the checksum before loading it, and give an error if it does not match.

### Returns

| Type                                                                      | Description                                  |
| ------------------------------------------------------------------------- | -------------------------------------------- |
| [AssetBundle](/engine/6000.0/script-reference/unityengine/assetbundle.md) | Loaded AssetBundle object or null if failed. |

### Remarks

The function supports bundles of any compression type. In case of **LZMA** compression, the file content will be fully decompressed into memory and loaded from there. See AssetBundles compression for more details.

Compared to [AssetBundle.LoadFromFileAsync](/engine/6000.0/script-reference/unityengine/assetbundle/loadfromfileasync.md), this version is synchronous and will not return until it is done creating the AssetBundle object.

This is the fastest way to load an AssetBundle.

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

public class LoadFromFileExample : MonoBehaviour
{
    void Start()
    {
        var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "myassetBundle"));
        if (myLoadedAssetBundle == null)
        {
            Debug.Log("Failed to load AssetBundle!");
            return;
        }

        var prefab = myLoadedAssetBundle.LoadAsset<GameObject>("MyObject");
        Instantiate(prefab);

        myLoadedAssetBundle.Unload(false);
    }
}
```

Additional Resources: [AssetBundle](/engine/6000.0/script-reference/unityengine/assetbundle.md), [AssetBundle.LoadFromFileAsync](/engine/6000.0/script-reference/unityengine/assetbundle/loadfromfileasync.md).

## LoadFromFile(string, uint, ulong)

Synchronously loads an AssetBundle from a file on disk.

```csharp
public static AssetBundle LoadFromFile(string path, uint crc, ulong offset)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Path of the file on disk.**** (\[uint]\(https\://learn.microsoft.com/dotnet/api/system.uint32)): An optional CRC-32 checksum of the uncompressed content. If this is non-zero, then the content will be compared against the checksum before loading it, and give an error if it does not match.**** (\[ulong]\(https\://learn.microsoft.com/dotnet/api/system.uint64)): An optional byte offset. This value specifies where to start reading the AssetBundle from.

### Returns

| Type                                                                      | Description                                  |
| ------------------------------------------------------------------------- | -------------------------------------------- |
| [AssetBundle](/engine/6000.0/script-reference/unityengine/assetbundle.md) | Loaded AssetBundle object or null if failed. |

### Remarks

The function supports bundles of any compression type. In case of **LZMA** compression, the file content will be fully decompressed into memory and loaded from there. See AssetBundles compression for more details.

Compared to [AssetBundle.LoadFromFileAsync](/engine/6000.0/script-reference/unityengine/assetbundle/loadfromfileasync.md), this version is synchronous and will not return until it is done creating the AssetBundle object.

This is the fastest way to load an AssetBundle.

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

public class LoadFromFileExample : MonoBehaviour
{
    void Start()
    {
        var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "myassetBundle"));
        if (myLoadedAssetBundle == null)
        {
            Debug.Log("Failed to load AssetBundle!");
            return;
        }

        var prefab = myLoadedAssetBundle.LoadAsset<GameObject>("MyObject");
        Instantiate(prefab);

        myLoadedAssetBundle.Unload(false);
    }
}
```

Additional Resources: [AssetBundle](/engine/6000.0/script-reference/unityengine/assetbundle.md), [AssetBundle.LoadFromFileAsync](/engine/6000.0/script-reference/unityengine/assetbundle/loadfromfileasync.md).
