private void LoadLevel(string level) { _loadingEntity = _registry.CreateAbstractEntity(); var component = new LoadingScreenComponent(); component.Texture = Texture.LoadTextureUnsafe(_loadingScreen); component.Transform *= Matrix4.CreateScale(1f, 1f, 1); component.Transform *= Matrix4.CreateFromAxisAngle(new Vector3(1), 0); component.Transform *= Matrix4.CreateTranslation(Application.Width * 3f / 10f, -Application.Height * 3f / 10f, 0); _ = _registry.AddSingletonComponent(_loadingEntity, component); _registry.AddSystem <LoadingScreenSystem>(World.System.UpdateFlags.Update | World.System.UpdateFlags.Render); _loadingScreenCamera = _registry.CreateAbstractEntity(); _ = _registry.AddSingletonComponent(_loadingScreenCamera, new OrthoCameraComponent(_registry.CachedTransform != Matrix4.Identity ? _registry.CachedTransform : Matrix4.Identity)); _loadingTask = Scene.LoadSceneAsync(level); _registry.ActivateSystems(); }