public void __DisposeImmediately(bool disposeNative) { if (IsAlive) { IsAlive = false; OnDispose(); foreach (var component in componentManager_.Components) { component.RaiseOnDisposed(); } foreach (var item in asd.Particular.Lambda.FilterDeadObject(ChildrenList)) { CoreObject.RemoveChild(item.CoreObject); if (item.IsInheriting(ChildManagementMode.Disposal)) { item.Dispose(); } item.ParentInfo = null; } if (Parent != null) { Parent.ImmediatelyRemoveChild(this); } if (Layer != null) { Layer.ImmediatelyRemoveObject(this, false); } if (disposeNative) { ForceToRelease(); } } }
internal void ImmediatelyRemoveChild(Object2D child) { if (IsAlive) { CoreObject.RemoveChild(child.CoreObject); ChildrenList.Remove(child); } }
/// <summary> /// 指定した子オブジェクトをこのインスタンスから削除する。 /// </summary> /// <param name="child"></param> public void RemoveChild(Object2D child) { CoreObject.RemoveChild(child.CoreObject); children_.Remove(child); }