> ## Documentation Index
> Fetch the complete documentation index at: https://docs.diversion.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Unity プラグイン

> Unity Editor から直接 Diversion を使用する

Diversion の Unity プラグインは、バージョン管理を Unity Editor に直接持ち込みます。ファイルのステータス確認、変更のコミット、リアルタイムの競合警告のすべてを、プロジェクトを離れることなく行えます。

## 前提条件

プラグインを使用する前に、以下を用意してください:

* **Unity 6**（6000.0.0f1）以降
* **Diversion デスクトップアプリ** がインストールされ、実行中で、サインイン済み（[クイックスタート](/ja/quickstart)）
* Unity プロジェクトが Diversion リポジトリとして初期化されていること（デスクトップアプリまたは CLI で）

## インストール

<Card title="オープンベータ" icon="flask" iconType="duotone" color="#477BFF">
  Unity プラグインは現在オープンベータ版です。
  [こちら](https://get.diversion.dev/unity-plugin/com.diversion.vcs-0.1.5.tgz) から入手できます。

  これは初期リリースであり、皆さまのフィードバックはプラグイン改善の助けとなります。
  正式リリースに向けて、このページは随時更新します。

  [Discord サーバー](https://discord.gg/S8WZBczKnY) に参加して、早期アクセスの取得、フィードバックの提供、コミュニティとの交流をお楽しみください。
</Card>

プラグインにアクセスできるようになったら:

<Steps>
  <Step title="プラグインをダウンロードする">
    Discord に記載されたリンクからプラグインパッケージをダウンロードします。
  </Step>

  <Step title="Package Manager を開く">
    Unity で `Window > Package Management > Package Manager` に移動します。
  </Step>

  <Step title="tarball からパッケージを追加する">
    左上の `+` ボタンをクリックし、`Add package from tarball...` を選択します。

    ダウンロードしたファイルの場所に移動して選択します。
  </Step>

  <Step title="インストールを待つ">
    Unity がプラグインを自動的にインストールします。
  </Step>
</Steps>

## 設定

プラグインをインストールしたら、バージョン管理プロバイダーとして Diversion を使うように設定します。

<Steps>
  <Step title="Version Control 設定を開く">
    `Edit > Project Settings > Version Control` に移動します。
  </Step>

  <Step title="プロバイダーとして Diversion を選択する">
    `Mode` ドロップダウンから `Diversion` を選択します。
  </Step>

  <Step title="接続を確認する">
    Version Control の下にある `Diversion` セクションを展開して、Diversion 設定パネルを表示します。接続状態が表示されます:

    * **Connected** - 使用可能
    * **Agent Not Running** - Diversion デスクトップアプリを起動してください
    * **Not a Workspace** - デスクトップアプリまたは CLI でプロジェクトを Diversion リポジトリとして初期化してください

    接続すると、リポジトリ名、現在のブランチ、ワークスペース ID が表示されます。
  </Step>
</Steps>

## Diversion ウィンドウ

`Window > Diversion` からメインの Diversion ウィンドウにアクセスします。これはバージョン管理操作の中心となる場所です。

### ヘッダーバー

ヘッダーには以下が表示されます:

* **Branch** - アクティブなブランチ名
* **Status** - 同期状態（Synced、Syncing、または Paused）
* **Refresh ボタン** - 接続とファイルステータスを手動で更新
* **Settings ボタン** - Version Control 設定を開く

### 変更リスト

Changes セクションには、ワークスペース内の変更されたすべてのファイルが表示されます:

* **Select All トグル** - すべてのファイルを素早く選択・解除
* **File count** - 変更されたファイルの総数
* **View in Desktop** - Diversion デスクトップを開いて詳細な差分を表示
* **Reset All** - 未コミットの変更をすべて破棄

各ファイル行には、パス、ステータス、および選択用のチェックボックスが表示されます。

### コミットパネル

ウィンドウの下部:

* **Commit Message** - 変更内容の説明を入力
* **Reset Selected** - 選択されたファイルのみ変更を破棄
* **Commit** - 選択されたファイルを入力したメッセージでコミット

### ファイルステータスアイコン

Diversion ウィンドウと Project ウィンドウの両方で、ファイルにステータスアイコンが表示されます:

* **緑の丸（+）** - 追加されたファイル
* **オレンジの丸** - 変更されたファイル
* **赤の丸（-）** - 削除されたファイル
* **黄色の丸（!）** - 他のユーザーの変更との潜在的な競合

## 競合防止

Diversion は、チームメイトが同じファイルを編集している場合に警告を出すことで、マージ競合の防止を支援します。

### ファイルを開く

他のチームメンバーが現在編集中のアセットをダブルクリックで開こうとすると、次の情報を含む警告ダイアログが表示されます:

* 誰がそのファイルを編集しているか
* どのブランチで作業しているか
* 最後に変更したのはいつか

**Open Anyway**（それでも開く）または **Cancel**（キャンセル）を選択できます。

### ファイルを保存する

潜在的な競合のあるファイルを保存する際は、次の 3 つのオプションを含むダイアログが表示されます:

* **Save Anyway** - 競合に関係なくすべてのファイルを保存
* **Cancel** - どのファイルも保存しない
* **Skip Conflicted** - 競合のないファイルのみ保存

### 警告を無効にする

競合警告を表示したくない場合は、設定で無効にできます:

1. `Edit > Project Settings > Version Control` に移動する
2. `Diversion` セクションを展開する
3. **Show Conflict Warnings** のチェックを外す

<Card title="注意" icon="info-circle" iconType="duotone" color="#0b8a42">
  警告を無効にしても、他のユーザーが編集中のファイルを識別できるよう、Project ウィンドウには黄色の競合アイコン（!）が引き続き表示されます。
</Card>

## 自動リロードの動作

外部の変更（ブランチの切り替え、デスクトップアプリからのファイルリセット、チームメイトからの受信コミットなど）を検出すると、プラグインは自動的に Unity の Asset Database を更新し、開いているシーンを再読み込みします。

これにより、手動で操作しなくても、Unity Editor は最新のファイルと常に同期された状態に保たれます。

<Card title="注意" icon="info-circle" iconType="duotone" color="#0b8a42">
  シーンに未保存の変更がある場合、Unity はリロード前に保存を促します。未保存の作業が失われることはありません。
</Card>

シーンの自動リロードを無効にするには、設定で **Auto-Reload Scenes** のチェックを外します。

## Play モードの同期

プラグインは、Play モードに入るときに自動的に同期を一時停止し、終了時に再開します。これにより、テストセッション中にチームメイトからのファイル変更で作業が妨げられるのを防ぎます。

Play モードを終了すると同期は自動的に再開され、一時停止中に届いた変更が適用されます。

## 設定

`Edit > Project Settings > Version Control > Diversion` からプラグインを設定できます。

| 設定                         | デフォルト | 説明                                   |
| -------------------------- | ----- | ------------------------------------ |
| **Auto-Refresh State**     | On    | 接続とファイルステータスを定期的に更新する                |
| **Auto-Reload Scenes**     | On    | 外部の変更を検出したときに開いているシーンをリロードする         |
| **Show Conflict Warnings** | On    | 潜在的競合のあるファイルを開いたり保存したりする際にダイアログを表示する |

### クイックアクション

設定パネルには、よく使う操作のためのボタンもあります:

* **Open Diversion Window** - メインのプラグインウィンドウを開く
* **Open Diversion Desktop** - Diversion デスクトップアプリを起動する
* **Refresh Connection** - エージェント接続を手動で更新する
* **Documentation** - このドキュメントを開く

## トラブルシューティング

### Agent Not Running

**問題**: プラグインが "Agent Not Running" ステータスを表示する。

**解決策**:

1. Diversion デスクトップアプリを起動する
2. ログインしていることを確認する
3. プラグイン設定の **Refresh Connection** をクリックする

### Not a Workspace

**問題**: プラグインが "Not a Workspace" ステータスを表示する。

**解決策**:

1. Diversion デスクトップアプリを開く
2. Unity プロジェクトフォルダーから新しいリポジトリを作成するか、既存のリポジトリをクローンする
3. プラグインが自動的にワークスペースを検出する

### 変更リストにファイルが表示されない

**問題**: 変更されたファイルが Diversion ウィンドウに表示されない。

**解決策**:

1. ファイルが保存されていることを確認する（`Ctrl+S` / `Cmd+S`）
2. Diversion ウィンドウの Refresh ボタンをクリックする
3. `.dvignore` ファイルによって除外されていないか確認する

### 外部の変更後にシーンがリロードされない

**問題**: チームメイトの変更が届いても Unity がシーンをリロードしない。

**解決策**:

1. 設定で **Auto-Reload Scenes** が有効になっているか確認する
2. 未保存の変更がある場合、Unity は先に保存されるのを待ちます
3. **Refresh Connection** を手動でクリックしてみる
