// Token: 0x06002DC6 RID: 11718 RVA: 0x000ACA4C File Offset: 0x000AAC4C private bool CreateInstance(out global::GameGizmo.Instance instance, Type type) { try { instance = this.ConstructInstance(); if (object.ReferenceEquals(instance, null)) { return(false); } if (this._instances == null) { this._instances = new HashSet <global::GameGizmo.Instance>(); } this._instances.Add(instance); if (!type.IsAssignableFrom(instance.GetType())) { this.DestroyInstance(instance); throw new InvalidCastException(); } } catch (Exception ex) { Debug.LogException(ex, this); instance = null; return(false); } return(true); }
// Token: 0x06002DC9 RID: 11721 RVA: 0x000ACB3C File Offset: 0x000AAD3C private bool DestroyInstance(global::GameGizmo.Instance instance) { if (!object.ReferenceEquals(instance, null) && this._instances != null && this._instances.Remove(instance)) { try { instance.ClearResources(); this.DeconstructInstance(instance); } catch (Exception ex) { Debug.LogException(ex, this); } return(true); } return(false); }
// Token: 0x06002DC8 RID: 11720 RVA: 0x000ACB38 File Offset: 0x000AAD38 protected virtual void DeconstructInstance(global::GameGizmo.Instance instance) { }