Menggunakan sistem kontrol versi eksternal dengan Unity
Mode Aman

Smart merge

Gunakan alat UnityYAMLMerge untuk menggabungkan file sceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
dan prefabJenis aset yang memungkinkan Anda untuk menyimpan GameObject lengkap dengan komponen dan properti. Prefab bertindak sebagai template dari mana Anda dapat membuat instance objek baru di tempat kejadian. More info
Lihat di Glossary
dengan cara yang benar. Alat ini dapat diakses dari baris perintah dan juga tersedia untuk perangkat lunak version controlSistem untuk mengelola perubahan file. Anda dapat menggunakan Unity bersama dengan alat kontrol versi yang paling umum, termasuk Perforce, Git, Mercurial dan PlasticSCM. More info
Lihat di Glossary
pihak ketiga.

Menyiapkan merging cerdas di Unity

Dalam pengaturan proyek Kontrol Versi (menu: Edit > Project Settings > Version Control), ketika Anda memilih alat kontrol versi pihak ketiga di bidang Mode, misalnya Perforce atau PlasticSCM, Smart Merge ditampilkan. Menu memiliki opsi berikut:

  • Off: gunakan hanya set alat penggabungan default dalam preferensi tanpa penggabungan cerdas.
  • Premerge: memungkinkan penggabungan cerdas, menerima penggabungan bersih. Ungkapan menggabungkan akan membuat versi dasar yang sudah ada sebelumnya, versi mereka dan versi tambang dari file. Kemudian, gunakan ini dengan alat penggabungan default.
  • Ask: memungkinkan merging cerdas tetapi ketika konflik terjadi, menunjukkan dialog untuk membiarkan pengguna menyelesaikannya (ini adalah pengaturan default).

Menyiapkan UnityYAMLMerge untuk digunakan dengan alat pihak ketiga

Alat UnityYAMLMerge dikirim dengan editor Unity; asumsi Unity dipasang di lokasi standar, jalur ke UnityYAMLMerge akan:

C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe

or

C:\Program Files (x86)\Unity\Editor\Data\Tools\UnityYAMLMerge.exe

... di Windows dan

/Applications/Unity/Unity.app/Contents/Tools/UnityYAMLMerge

...on Mac OSX (menggunakan perintah Tampilkan Konten Paket dari Finder untuk mengakses folder ini).

UnityYAMLMerge dikirim dengan file fallback default (yang disebut mergespecfile.txt, juga di folder Alat) yang menentukan bagaimana harus melanjutkan dengan konflik yang tidak terlarut atau file yang tidak diketahui. Ini juga memungkinkan Anda untuk menggunakannya sebagai alat penggabungan utama untuk sistem kontrol versi (seperti git) yang tidak secara otomatis memilih alat penggabungan berdasarkan ekstensi file. Alat yang paling umum sudah terdaftar secara default dalam mergespecfile. txt tetapi Anda dapat mengedit file ini untuk menambahkan alat atau opsi perubahan baru.

Anda dapat menjalankan UnityYAMLMerge sebagai alat mandiri dari baris perintah (Anda dapat melihat instruksi penggunaan penuh dengan menjalankannya tanpa argumen). Instruksi pengaturan untuk sistem kontrol versi umum diberikan di bawah ini.

P4V

  1. Pergi ke Preferensi > Merge.
  2. Pilih Aplikasi lain.
  3. Klik tombol Add.
  4. Di bidang ekstensi, tipe .unity.
  5. Di bidang Aplikasi, ketik jalan ke alat UnityYAMLMerge (lihat di atas).
  6. Di bidang Argument, tipe merge -p %b %1 %2 %r
  7. Klik.

Kemudian, ikuti prosedur yang sama untuk menambahkan ekstensi .prefab.

Git

Tambahkan teks berikut ke file .git atau .gitconfig Anda:

    [merge]
    tool = unityyamlmerge

    [mergetool "unityyamlmerge"]
    trustExitCode = false
    cmd = '<path to UnityYAMLMerge>' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"

Mercurial

Tambahkan teks berikut ke file .hgrc Anda:

    [merge-patterns]
    **.unity = unityyamlmerge
    **.prefab = unityyamlmerge

    [merge-tools]
    unityyamlmerge.executable = <path to UnityYAMLMerge>
    unityyamlmerge.args = merge -p --force $base $other $local $output
    unityyamlmerge.checkprompt = True
    unityyamlmerge.premerge = False
    unityyamlmerge.binary = False

SVN

Tambahkan berikut ke file ~/.subversion/config Anda:

    [helpers]
    merge-tool-cmd = <path to UnityYAMLMerge>

Login Login

  1. Pergi ke Preferensi > Diff Viewer > Alat Merge dan klik tombol Advanced.
  2. Dalam popup, tipe .unity di bidang ekstensi.
  3. Dalam jenis lapangan External Program:
    <path to UnityYAMLMerge> merge -p %base %theirs %mine %merged

Kemudian, ikuti prosedur yang sama untuk menambahkan ekstensi .prefab.

PlasticSCM

  1. Pergi ke Preferensi > Alat Merge dan klik tombol Add.
  2. Pilih alat gabungan External.
  3. Pilih Use with files that match the following pattern.
  4. Tambahkan ekstensi .unity.
  5. Masukkan perintah:
    <path to UnityYAMLMerge> merge -p "@basefile" "@sourcefile"  "@destinationfile" "@output"

Kemudian, ikuti prosedur yang sama untuk menambahkan ekstensi .prefab.

Login Login

  1. Pergi ke Alat > Pilihan > Diff.
  2. Pilih Custom di dropdown Alat Merge.
  3. Ketik jalan ke UnityYAMLMerge di bidang Merge Command.
  4. Jenis merge -p $BASE $REMOTE $LOCAL $MERGED di bidang Arguments.

WordPress.org

Untuk menyesuaikan bagaimana menggabungkan file UnityYAMLMerge, mengkonfigurasi file mergerules.txt. Ini tersedia dalam folder Editor/Data/Tools instalasi Unity Anda. Berbagai opsi konfigurasi adalah sebagai berikut.

Arrays

Bagian konfigurasi array memberi tahu UnityYAMLMerge untuk mengobati jalur yang ditentukan sebagai array; baik sebagai “set” dengan nilai kunci, atau sebagai array “plain” tanpa nilai kunci. Default untuk semua array adalah untuk melakukan mode hybrid dan mencoba untuk mencocokkan dengan beberapa heuristik yang diketahui.

  • <mode> adalah salah satu “set” atau “plain”

Contoh (sebagai file mergerules default)

[arrays]
set *.GameObject.m_Component *.fileID
set *.Prefab.m_Modification.m_Modifications target.fileID target.guid propertyPath
plain *.MeshRenderer.m_Materials
plain *.Renderer.m_Materials

Exclusions

Bagian konfigurasi pengecualian menunjukkan jalur mana yang harus dikecualikan dari penggabungan. Jika kedua sisi telah dimodifikasi, mereka kemudian diperlakukan sebagai konflik dan akan muncul untuk input pengguna.

  • <mode> adalah salah satu "termasuk", "tidak termasuk", "termasukJikaKontains", "tidak termasukJikaKontains"

Contoh (sebagai file mergerules default)

[exclusions]
exclude *.MeshRenderer.m_Materials.*
exclude *.SpriteRenderer.m_Materials
exclude *.SpriteRenderer.m_Color
include *.ParticleSystem.InitialModule
exclude *.ParticleSystem.*
exclude *.ParticleSystem.InitialModule.*
#excludeDepend *.MonoBehaviour m_Script ^m_
excludeIfContains *.MonoBehaviour.* x y z
excludeIfContains *.MonoBehaviour.* r g b

Comparisons

Bagian perbandingan memperhitungkan perbedaan di antara nilai pelampung untuk mengabaikan pengaturan pengguna. Ketika diaktifkan, perbandingan titik mengambang dilakukan relatif ke akun untuk kesalahan relatif. Anda dapat mengkonfigurasi perbandingan dengan cara berikut:

  • “float” <float value untuk membandingkan> (Ini set epsilon untuk nilai default dekat dengan mesin epsilon)
  • “float” <float value untuk membandingkan> <relatif nilai perbandingan dan cutoff absolut>
  • “float” <float value untuk membandingkan> <relatif perbandingan nilai> <absolute perbandingan cutoff>

Nilai perbandingan relatif menentukan epsilon dan bagaimana perbandingan akan skala dengan ukuran kesalahan relatif pelampung. Cutoff perbandingan absolut menentukan di mana titik sakelar perbandingan float dari absolut ke relatif dari nol (pada grafik).

Note: Nilai perbandingan harus antara epsilon float ( ~0.00000011921) dan 1.0

Example

[comparisons]
float *.Transform.m_LocalPosition.x 0.0000005
float *.Transform.m_LocalPosition.y 0.0000005
float *.Transform.m_LocalPosition.z 0.0000005
float *.Transform.m_LocalRotation.x 0.00005 0.001
float *.Transform.m_LocalRotation.y
float *.Transform.m_LocalRotation.z 0.00005 0.001
float *.Transform.m_LocalRotation.w
Menggunakan sistem kontrol versi eksternal dengan Unity
Mode Aman