# 書き込みロック

> Understand how write locks prevent you from overwriting changes made to data from other sources.

書き込みロックは、データ項目を更新するときに、他からの変更を上書きできないようにします。例えば、コードの別の部分に変更があった場合や、Cloud Code スクリプトからの変更があった場合です。

書き込みロックを使用する方法の例については、Cloud Save SDK の [`SaveItem` クラス](https://docs.unity3d.com/Packages/com.unity.services.cloudsave@latest/index.html?subfolder=/api/Unity.Services.CloudSave.Models.SaveItem#Unity_Services_CloudSave_Models_SaveItem_WriteLock) を参照してください。

## 競合の確認を強制する##enforces-conflict-checks

読み取りコマンドと書き込みコマンドはどちらも `writeLock` を返します。それをローカルに保存できます。値を保存するときに、取得した `writeLock` を追加できます。書き込みロックが Cloud Save サービスの値と一致しない場合、書き込みロックを最後に取得してからサービスの値が更新されたことを示すエラーが返されます。

### 競合の解決##conflict-resolution

書き込みロックエラーが発生した場合は、以下のいずれかで続行できます。

* 保存する値が正しいことが確かな場合は、書き込みロックをバイパスして、[変更を上書き](#overwrite-changes) できます。
* Cloud Save サービスからの値と書き込みロックを更新するには、値を再度読み取ります。その後、手動で競合を解決できます。

## 書き込みロックの省略##write-lock-omission

### 項目の作成##item-creation

不必要なエラーを回避するには、新しいデータ項目を作成するときに `writeLock` フィールドを省略する必要があります。

### 変更を上書きする##overwrite-changes

書き込みロックの検証をスキップするには、項目の `writeLock` フィールドを `null` に設定します。書き込みロックを null に設定すると、その項目の保存されている既存の値を上書きできます。
