public async Task <ForgelightActor[]> CreateActorInstances(Object objectDef) { ForgelightActor[] actors = new ForgelightActor[objectDef.Instances.Count]; for (int i = 0; i < objectDef.Instances.Count; i++) { actors[i] = await actorFactory.CreateActor(objectDef.ActorDefinition, zoneObjects.transform); PrepareInstance(actors[i], objectDef.Instances[i]); } return(actors); }
private async Task LoadZoneObjects(Zone zone) { Task[] objTasks = new Task[zone.Objects.Count]; for (int i = 0; i < zone.Objects.Count; i++) { Object zoneObject = zone.Objects[i]; objTasks[i] = CreateActorInstances(zoneObject); statusReporter.ReportProgress("Loading Zone Objects", i, zone.Objects.Count); await new WaitForUpdate(); } foreach (Task objTask in objTasks) { await objTask; } statusReporter.ReportProgress("Loading Zone Objects", zone.Objects.Count, zone.Objects.Count); zoneObjects.transform.localScale = new Vector3(-1, 1, 1); }