はじめに
UnityYAMLMerge はシーンやプレハブのコンフリクトを
良い感じにマージできる公式のツールです
Fork や SourceTree などの Git クライアントのマージツールに
UnityYAMLMerge を指定しておくことで、シーンやプレハブが
コンフリクトした時のマージ作業を UnityYAMLMerge に任せられるようになります
この記事では Fork で UnityYAMLMerge を使用できるようにして
シーンやプレハブのコンフリクトを解消できるようにする方法を紹介していきます
目次
検証環境
- Unity 2020.3.13f1
- Windows 10
- Fork 1.64.1.0
Fork への設定方法

Fork メニューの「File > Preferences...」を選択して

「Integration」タブの「Merge Tool」の欄を以下のように変更して「Close」を押します
| 項目 | 内容 |
|---|---|
| Merge | Custom |
| Merger Path | 【Unity のインストール先のフォルダ】\Editor\Data\Tools\UnityYAMLMerge.exe |
| Arguments | merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED" |
コンフリクトの解消方法

例えば「add_button」と「add_text」の2つのブランチが存在しており、


「add_button」ブランチでは「Button」オブジェクトを SampleScene に追加し、


「add_text」ブランチでは「Text」オブジェクトを SampleScene に追加している状態で

「add_text」ブランチを「add_button」ブランチにマージすると

コンフリクトが発生しますが

「Merge in external merger」を押して UnityYAMLMerge によるマージを行うことで


それぞれのブランチで追加したオブジェクトが正常にマージされて
シーンに配置されていることが確認できます
このように、UnityYAMLMerge を使用することで
シーンやプレハブのコンフリクトを解消できるようになります