/// <summary> /// 指定した子オブジェクトをこのインスタンスから削除する。 /// </summary> /// <param name="child">削除する子オブジェクト</param> /// <remarks>実際に削除されるのはこのメソッドを呼び出したフレームの最後になるので注意が必要。</remarks> public void RemoveChild(Object2D child) { var e = new EventToManageFamilyship2D(this, child); e.SetUpAsRemoveEvent(); Engine.ChangesToBeCommited.Enqueue(e); if (child.IsInheriting(ChildManagementMode.RegistrationToLayer)) { Layer.RemoveObject(child); } child.ParentInfo = null; }
internal void SyncContainerWithChild(Object2D child) { if (child.IsInheriting(ChildManagementMode.RegistrationToLayer)) { if (child.Layer != null && child.Layer != Layer) { child.Layer.RemoveObject(child); } if (child.Layer == null && Layer != null) { Layer.AddObject(child); } } }