# Lock

> Attempt to lock an asset for exclusive editing.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.VersionControl](/engine/6000.5/script-reference/unityeditor/versioncontrol.md)
* **Assembly:** UnityEditor.CoreModule

## Lock(AssetList, bool)

Attempt to lock an asset for exclusive editing.

```csharp
public static Task Lock(AssetList assets, bool locked)
```

### Parameters

**** (\[AssetList]\(/engine/6000.5/script-reference/unityeditor/versioncontrol/assetlist)): List of assets to lock/unlock.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): True to lock assets, false to unlock assets.

### Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [Task](/engine/6000.5/script-reference/unityeditor/versioncontrol/task.md) |             |

### Remarks

Depending on version control system and server setup this might be an exclusive lock preventing other people from even modifing the asset (for example: Plastic SCM or Git) or it might simply prevent other people from submitting the asset to the version control server (Perforce).

### Examples

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

public class EditorScript : MonoBehaviour
{
    [MenuItem("Version Control/Lock")]
    public static void ExampleLock()
    {
        AssetList assets = new AssetList();
        assets.Add(Provider.GetAssetByPath("Assets/ExampleAsset.cs"));
        Task t1 = Provider.Checkout(assets, CheckoutMode.Exact);
        t1.Wait();
        Task t2 = Provider.Lock(assets, locked: true);
        t2.Wait();
    }
}
```

## Lock(Asset, bool)

Attempt to lock an asset for exclusive editing.

```csharp
public static Task Lock(Asset asset, bool locked)
```

### Parameters

**** (\[Asset]\(/engine/6000.5/script-reference/unityeditor/versioncontrol/asset)): Asset to lock/unlock.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): True to lock assets, false to unlock assets.

### Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [Task](/engine/6000.5/script-reference/unityeditor/versioncontrol/task.md) |             |

### Remarks

Depending on version control system and server setup this might be an exclusive lock preventing other people from even modifing the asset (for example: Plastic SCM or Git) or it might simply prevent other people from submitting the asset to the version control server (Perforce).

### Examples

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

public class EditorScript : MonoBehaviour
{
    [MenuItem("Version Control/Lock")]
    public static void ExampleLock()
    {
        AssetList assets = new AssetList();
        assets.Add(Provider.GetAssetByPath("Assets/ExampleAsset.cs"));
        Task t1 = Provider.Checkout(assets, CheckoutMode.Exact);
        t1.Wait();
        Task t2 = Provider.Lock(assets, locked: true);
        t2.Wait();
    }
}
```
