Esempio n. 1
0
        public async Task CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(0, 100, 8),
                scene
                );

            var advancedTexture = await AdvancedDynamicTexture.CreateFullscreenUI("UI");

            var button = await Button.CreateSimpleButton(
                "button", "Click Me"
                );

            await button.set_width("90%");

            await button.set_height("90%");

            await button.set_color("white");

            await button.set_background("green");

            await(await button.get_onPointerClickObservable()).add(async(Vector2WithInfo arg1, EventState state) =>
            {
                var x      = (await arg1.get_x()).ToString();
                var fds    = await arg1.get_buttonIndex();
                var vector = await Vector3.NewVector3(2.1m, 3.2m, 4.1m);
                //Console.WriteLine(
                //    $"Clicked: {await arg1.get_x()}, {await arg1.get_y()}"
                //);
                var xx          = await vector.getClassName();
                ClickPosition   = arg1;
                ClickPosition_X = await ClickPosition.get_x();
                ClickPosition_Y = await ClickPosition.get_y();
                await InvokeAsync(StateHasChanged);
                //Console.WriteLine("Clicked: ");
            });
            await advancedTexture.addControl(
                button
                );

            var freeCamera = await FreeCamera.NewFreeCamera(
                "FreeCamera",
                await Vector3.NewVector3(
                    0,
                    0,
                    -100
                    ),
                scene
                );

            await freeCamera.set_rotation(
                await Vector3.NewVector3(
                    0,
                    0,
                    0
                    )
                );

            await scene.set_activeCamera(freeCamera);

            await freeCamera.attachControl(false);

            await engine.runRenderLoop(new ActionCallback(() => Task.Run(() => scene.render(true, false))));

            _engine = engine;

            await Canvas.RemoveBlur(
                "game-window"
                );
        }
        public async ValueTask CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var advancedTexture = await AdvancedDynamicTexture.CreateFullscreenUI("UI");

            var UiPanel = await StackPanel.NewStackPanel("name");

            await UiPanel.set_width("220px");

            await UiPanel.set_fontSize("14px");

            await UiPanel.set_horizontalAlignment(await Control.get_HORIZONTAL_ALIGNMENT_RIGHT());

            await UiPanel.set_verticalAlignment(await Control.get_VERTICAL_ALIGNMENT_CENTER());

            await advancedTexture.addControl(UiPanel);

            var house = await SceneLoader.ImportMesh(
                null,
                "assets/",
                "Player.glb",
                scene,
                new Server.Interop.Callbacks.ActionCallback <AbstractMesh[], IParticleSystem[], Skeleton[], AnimationGroup[]>(async(arg1, arg2, arg3, arg4) =>
            {
                foreach (var animation in arg4)
                {
                    await animation.stop();
                    _animationMap.Add(await animation.get_name(), animation);
                    await AddRunAnimationButton(
                        UiPanel,
                        await animation.get_name()
                        );
                }
                if (_animationMap.Count > 0)
                {
                    _runningAnimation = _animationMap.First().Value;
                    await _runningAnimation.start(true);
                }
            })
                );

            var camera = await ArcRotateCamera.NewArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(System.Math.PI / 2),
                (decimal)(System.Math.PI / 4),
                3,
                await Vector3.NewVector3(0, 1, 0),
                scene
                );

            await camera.set_lowerRadiusLimit(2);

            await camera.set_upperRadiusLimit(10);

            await camera.set_wheelDeltaPercentage(0.01m);

            await scene.set_activeCamera(camera);

            await camera.attachControl(
                canvas,
                false
                );

            await engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

            _engine = engine;
        }
Esempio n. 3
0
        public async ValueTask CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var house = await SceneLoader.ImportMesh(
                null,
                "assets/",
                "House.gltf",
                scene
                );

            var freeCamera = await FreeCamera.NewFreeCamera(
                "FreeCamera",
                await Vector3.NewVector3(
                    0,
                    0,
                    -100
                    ),
                scene
                );

            await freeCamera.set_rotation(await Vector3.NewVector3(
                                              0,
                                              0,
                                              0
                                              ));

            await scene.set_activeCamera(freeCamera);

            await freeCamera.attachControl(
                canvas,
                false
                );

            await engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

            _engine = engine;
        }
        public async ValueTask CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var Player = await SceneLoader.ImportMesh(
                null,
                "assets/",
                "Player.glb",
                scene,
                new ActionCallback <AbstractMesh[], IParticleSystem[], Skeleton[], AnimationGroup[], TransformNode[], Geometry[], Light[]>(async(arg1, arg2, arg3, arg4, arg5, arg6, arg7) =>
            {
                foreach (var animation in arg4)
                {
                    await animation.stop();
                    _animationMap.Add(await animation.get_name(), animation);
                }
                if (_animationMap.Count > 0)
                {
                    _runningAnimation = _animationMap.First().Value;
                    await _runningAnimation.start(true);
                }
            })
                );

            var camera = await ArcRotateCamera.NewArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(System.Math.PI / 2),
                (decimal)(System.Math.PI / 4),
                3,
                await Vector3.NewVector3(0, 1, 0),
                scene
                );

            await camera.set_lowerRadiusLimit(2);

            await camera.set_upperRadiusLimit(10);

            await camera.set_wheelDeltaPercentage(0.01m);

            await scene.set_activeCamera(camera);

            await scene.set_activeCamera(camera);

            await camera.attachControl(
                false
                );

            await engine.runRenderLoop(new ActionCallback(
                                           () => Task.Run(() => scene.render(true, false))
                                           ));

            _engine = engine;
        }