public void RemoveRef(EditroConfigUnitBase target) { var refObj = RefUnits.Find(obj => obj.Unit == target); if (refObj != null) { EditorHelper.RegisterCompleteObjectUndo(this); refObj.Count--; if (refObj.Count == 0) { RefUnits.Remove(refObj); EditorHelper.RegisterCompleteObjectUndo(target); target.BeRefs.Remove(this); } } }
public void AddRef(EditroConfigUnitBase target) { EditorHelper.RegisterCompleteObjectUndo(this); var refObj = RefUnits.Find(obj => obj.Unit == target); if (refObj == null) { refObj = new EditorConfigUnitRef() { Unit = target }; RefUnits.Add(refObj); } refObj.Count++; if (refObj.Count == 1) { EditorHelper.RegisterCompleteObjectUndo(target); target.BeRefs.Add(this); } }