/// <summary> /// Starts loading hit object to resolve for specified future. /// </summary> private IEnumerator LoadHitObjects(ManualTask task) { int createCount = 0; int lastLoads = 0; foreach (var obj in GameSession.CurrentMap.HitObjects) { // If create count reached 0, determine new creation count. if (createCount <= 0) { createCount = Mathf.Max((int)((1f / Time.deltaTime) + lastLoads) / 4, 1); lastLoads = createCount; yield return(null); } createCount--; HitObjectView hitObjView = null; if (obj is HitCircle hitCircle) { var hitCircleView = hitCircleRecycler.GetNext(); hitCircleView.Depth = hitObjectViews.Count; hitCircleView.ObjectIndex = hitObjectViews.Count; hitCircleView.SetHitObject(hitCircle); hitObjectViews.Add(hitCircleView); hitObjView = hitCircleView; } else if (obj is Dragger dragger) { var draggerView = draggerRecycler.GetNext(); draggerView.Depth = hitObjectViews.Count; draggerView.ObjectIndex = hitObjectViews.Count; draggerView.SetHitObject(dragger); hitObjectViews.Add(draggerView); hitObjView = draggerView; } if (hitObjView != null) { // Apply combo color var combo = obj as IHasCombo; if (combo != null) { hitObjView.Tint = GetComboColor(combo); } } } task.SetFinished(); }
// ======================================== // method // ======================================== public void AddChildEditorFigure(IFigure childEditorFigure) { _childEditorFigures.Add(childEditorFigure); }