123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using UnityEngine;
- using UnityEditor;
- namespace GitMerge
- {
- /// <summary>
- /// The MergeAction that handles a GameObject which exists in "our" version but not "theirs".
- /// </summary>
- public class MergeActionDeleteGameObject : MergeActionExistence
- {
- private bool oursWasActive;
- public MergeActionDeleteGameObject(GameObject ours, GameObject theirs)
- : base(ours, theirs)
- {
- oursWasActive = ours.activeSelf;
- if (GitMergeWindow.automerge)
- {
- UseOurs();
- merged = true;
- usingTheirs = false;
- usingOurs = true;
- }
- }
- protected override void ApplyOurs()
- {
- Debug.Log("ApplyOurs called");
- ours.SetActiveForMerging(true);
- ours.SetActive(oursWasActive);
- }
- protected override void ApplyTheirs()
- {
- Debug.Log("ApplyOurs deleting their GameObject");
- ours.SetActiveForMerging(false);
- SceneView.RepaintAll();
- }
- public override void EnsureExistence()
- {
- UseOurs();
- }
- public override void OnGUI()
- {
- var defaultOptionColor = merged ? Color.gray : Color.white;
- GUI.color = usingOurs ? Color.green : defaultOptionColor;
- if (GUILayout.Button("Keep GameObject"))
- {
- UseOurs();
- }
- GUI.color = usingTheirs ? Color.green : defaultOptionColor;
- if (GUILayout.Button("Delete GameObject"))
- {
- UseTheirs();
- }
- }
- }
- }
|