// 변수 등 모두 여기서 해제 public void Dispose() { MessageSystem.Instance.Unsubscribe <StageLoadEvent>(OnStageLoaded); MessageSystem.Instance.Unsubscribe <StageUnloadEvent>(OnStageUnloaded); MessageSystem.Instance.Unsubscribe <EnemyDeathEvent>(OnEnemyDeathEvent); MessageSystem.Instance.Unsubscribe <PlayerDeathEvent>(OnPlayerDeathEvent); //Dispose Player FieldObject. if (PlayerFieldObject != null) { PlayerFieldObject.Dispose(); GameObject.Destroy(PlayerFieldObject.gameObject); PlayerFieldObject = null; } //Dispose all StageFieldObjects. foreach (var stageFieldObject in StageFieldObjects) { if (stageFieldObject == null) { continue; } stageFieldObject.Dispose(); GameObject.Destroy(stageFieldObject.gameObject); } StageFieldObjects.Clear(); StageFieldObjects = null; if (LoadedMap != null) { GameObject.Destroy(LoadedMap.gameObject); LoadedMap = null; } }
private static void ProcessReportObjects(ReportObject ro, XmlWriter xmlw) { xmlw.WriteStartElement(ro.Kind.ToStringSafe()); // for all types the same properties xmlw.WriteAttributeString("Height", ro.Height.ToStringSafe()); xmlw.WriteAttributeString("Kind", ro.Kind.ToStringSafe()); xmlw.WriteAttributeString("Left", ro.Left.ToStringSafe()); xmlw.WriteAttributeString("Name", ro.Name); xmlw.WriteAttributeString("Top", ro.Top.ToStringSafe()); xmlw.WriteAttributeString("Width", ro.Width.ToStringSafe()); // kind specific properties switch (ro.Kind) { case ReportObjectKind.BlobFieldObject: { BlobFieldObject bfo = (BlobFieldObject)ro; ProcessDatabaseFieldDefinition(bfo.DataSource, xmlw); bfo.Dispose(); break; } case ReportObjectKind.BoxObject: { BoxObject bo = (BoxObject)ro; xmlw.WriteAttributeString("Bottom", bo.Bottom.ToStringSafe()); xmlw.WriteAttributeString("EnableExtendToBottomOfSection", bo.EnableExtendToBottomOfSection.ToStringSafe()); xmlw.WriteAttributeString("EndSectionName", bo.EndSectionName); xmlw.WriteAttributeString("FillColor", bo.FillColor.ToStringSafe()); xmlw.WriteAttributeString("LineColor", bo.LineColor.ToStringSafe()); xmlw.WriteAttributeString("LineStyle", bo.LineStyle.ToStringSafe()); xmlw.WriteAttributeString("LineThickness", bo.LineThickness.ToStringSafe()); xmlw.WriteAttributeString("Right", bo.Right.ToStringSafe()); bo.Dispose(); break; } case ReportObjectKind.FieldHeadingObject: { FieldHeadingObject fho = (FieldHeadingObject)ro; xmlw.WriteAttributeString("Color", fho.Color.ToStringSafe()); xmlw.WriteAttributeString("Font", fho.Font.ToStringSafe()); xmlw.WriteAttributeString("Text", fho.Text); xmlw.WriteAttributeString("FieldObjectName", fho.FieldObjectName); fho.Dispose(); break; } case ReportObjectKind.FieldObject: { FieldObject fo = (FieldObject)ro; xmlw.WriteAttributeString("Color", fo.Color.ToStringSafe()); xmlw.WriteAttributeString("Font", fo.Font.ToStringSafe()); if (fo.DataSource != null) { ProcessFieldDefinition(fo.DataSource, xmlw, "DataSource"); } ProcessFieldFormat(fo.FieldFormat, xmlw); fo.Dispose(); break; } case ReportObjectKind.LineObject: { LineObject lo = (LineObject)ro; xmlw.WriteAttributeString("Bottom", lo.Bottom.ToStringSafe()); xmlw.WriteAttributeString("EnableExtendToBottomOfSection", lo.EnableExtendToBottomOfSection.ToStringSafe()); xmlw.WriteAttributeString("EndSectionName", lo.EndSectionName); xmlw.WriteAttributeString("LineColor", lo.LineColor.ToStringSafe()); xmlw.WriteAttributeString("LineStyle", lo.LineStyle.ToStringSafe()); xmlw.WriteAttributeString("LineThickness", lo.LineThickness.ToStringSafe()); xmlw.WriteAttributeString("Right", lo.Right.ToStringSafe()); lo.Dispose(); break; } case ReportObjectKind.SubreportObject: { SubreportObject so = (SubreportObject)ro; xmlw.WriteAttributeString("EnableOnDemand", so.EnableOnDemand.ToStringSafe()); xmlw.WriteAttributeString("SubreportName", so.SubreportName); ro.Dispose(); break; } case ReportObjectKind.TextObject: { TextObject to = (TextObject)ro; xmlw.WriteAttributeString("Color", to.Color.ToStringSafe()); xmlw.WriteAttributeString("Font", to.Font.ToStringSafe()); xmlw.WriteAttributeString("Text", to.Text); to.Dispose(); break; } default: { break; } } ProcessBorder(ro.Border, xmlw); ProcessObjectFormat(ro.ObjectFormat, xmlw); xmlw.WriteEndElement(); }