public GuidObject Clone(Guid newGuid, string newID) { var oldGuid = this.Guid; this.Guid = newGuid; GuidObject clone = null; try { SerializationSettings settings; if (UnityEngine.Application.isPlaying) { settings = new SerializationSettings(SerializationFlags.Runtime | SerializationFlags.Binary); } else { settings = new SerializationSettings(SerializationFlags.Static | SerializationFlags.Binary); } var bytes = Serializer.Instance.Serialize(this, settings); clone = Serializer.Instance.Deserialize <GuidObject>(bytes, settings); clone.ID = newID; } catch (Exception ex) { Logger.Instance.Error(ex.ToString()); } finally { this.Guid = oldGuid; } return(clone); }
public void Add(GuidObject item) { if (item.ParentFolder != null) { throw new Exception("Item already added in another folder"); } Items.Add(item); item.SetParentFolder(this); }
public bool Remove(GuidObject guidObject) { if (guidObject.ParentFolder == this) { if (Items.Remove(guidObject)) { guidObject.SetParentFolder(null); return(true); } } return(false); }
public bool Contains(GuidObject item, bool recursive = false) { IEnumerable <GuidObject> enumerable = recursive ? AllItems : Items; foreach (var value in enumerable) { if (item == value) { return(true); } } return(false); }
public bool Replace(GuidObject oldItem, GuidObject newItem) { for (int i = 0; i < Items.Count; i++) { if (Items[i] == oldItem) { oldItem.SetParentFolder(null); Items[i] = newItem; newItem.SetParentFolder(this); return(true); } } return(false); }
public List <string> GetScopeIds(GuidObject guidObject) { return(GetScopeIds(guidObject?.ID)); }