ソースを参照

Added tutorial for mouse input and virtual buttons

Jorn Theunissen 6 年 前
コミット
ac1fdeeabd

+ 1 - 1
Tutorials/Tutorials/Assets/GameSettings.xkgamesettings

@@ -2,7 +2,7 @@
 Id: 66354f1a-ad5a-4504-b892-293a74e9a496
 Id: 66354f1a-ad5a-4504-b892-293a74e9a496
 SerializedVersion: {Xenko: 3.1.0.1}
 SerializedVersion: {Xenko: 3.1.0.1}
 Tags: []
 Tags: []
-DefaultScene: ee2eb459-7847-42b5-bd69-fc43a6625fd5:Scenes/Basics/Keyboard input
+DefaultScene: 328aea72-1405-48be-bf32-2363a61870f7:Scenes/Basics/Virtual buttons
 GraphicsCompositor: 6fbf9e7f-5a64-4144-9f7e-42ab89526670:GraphicsCompositor
 GraphicsCompositor: 6fbf9e7f-5a64-4144-9f7e-42ab89526670:GraphicsCompositor
 Defaults:
 Defaults:
     - !Xenko.Audio.AudioEngineSettings,Xenko.Audio
     - !Xenko.Audio.AudioEngineSettings,Xenko.Audio

+ 23 - 0
Tutorials/Tutorials/Assets/Materials/Pink.xkmat

@@ -0,0 +1,23 @@
+!MaterialAsset
+Id: 7134c638-e559-4cee-9099-4a3da6653a70
+SerializedVersion: {Xenko: 2.0.0.0}
+Tags: []
+Attributes:
+    MicroSurface: !MaterialGlossinessMapFeature
+        GlossinessMap: !ComputeFloat
+            Value: 0.1
+    Diffuse: !MaterialDiffuseMapFeature
+        DiffuseMap: !ComputeColor
+            Value: {R: 1.0, G: 0.0, B: 0.9749999, A: 1.0}
+    DiffuseModel: !MaterialDiffuseLambertModelFeature {}
+    Specular: !MaterialMetalnessMapFeature
+        MetalnessMap: !ComputeFloat
+            Value: 0.0
+    SpecularModel: !MaterialSpecularMicrofacetModelFeature
+        Fresnel: !MaterialSpecularMicrofacetFresnelSchlick {}
+        Visibility: !MaterialSpecularMicrofacetVisibilitySmithSchlickGGX {}
+        NormalDistribution: !MaterialSpecularMicrofacetNormalDistributionGGX {}
+        Environment: !MaterialSpecularMicrofacetEnvironmentGGXLUT {}
+    Overrides:
+        UVScale: {X: 1.0, Y: 1.0}
+Layers: {}

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/ChildEntities.xkscene

@@ -82,7 +82,7 @@ Hierarchy:
                         Id: e3607a8d-6c36-4850-b68b-79c45bb9fa49
                         Id: e3607a8d-6c36-4850-b68b-79c45bb9fa49
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Materials: {}
                         Materials: {}
-                    c8e9503a549427f69146c243e118f2d0: !Tutorials.Basics.BasicsProperties,Tutorials
+                    0794889f7dc91d829a53644ec5d201be: !Tutorials.Basics.BasicsProperties,Tutorials
                         Id: a716eff4-687e-4e6e-b3cd-3f4a0d54241f
                         Id: a716eff4-687e-4e6e-b3cd-3f4a0d54241f
                         aBoolean: true
                         aBoolean: true
                         aFloat: 5.6
                         aFloat: 5.6

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/Cloning entities.xkscene

@@ -81,7 +81,7 @@ Hierarchy:
                         Id: 331cd9e3-dfda-439c-a617-0bb891bd29af
                         Id: 331cd9e3-dfda-439c-a617-0bb891bd29af
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Materials: {}
                         Materials: {}
-                    a96ae365f5927b1855f63f18d3009d47: !Tutorials.Basics.CloneEntity,Tutorials
+                    4d154ca1859fcdfad9a7cb3fa631ba28: !Tutorials.Basics.CloneEntity,Tutorials
                         Id: c78f41d3-6d82-4e57-b6af-7a350bccae13
                         Id: c78f41d3-6d82-4e57-b6af-7a350bccae13
                         entityToClone: ref!! 23f2b5eb-4d46-436a-96a0-e3f317963ee3
                         entityToClone: ref!! 23f2b5eb-4d46-436a-96a0-e3f317963ee3
         -   Entity:
         -   Entity:

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/DeltaTime.xkscene

@@ -26,7 +26,7 @@ Hierarchy:
                         Model: 120c36db-8a04-4dfd-aa11-85d9b46d5143:Models/Cone
                         Model: 120c36db-8a04-4dfd-aa11-85d9b46d5143:Models/Cone
                         Materials:
                         Materials:
                             f1158e4b83bb5b2ca9e839da74158310~0: 619de649-4998-4996-bd74-085eaffdbbeb:Materials/Yellow
                             f1158e4b83bb5b2ca9e839da74158310~0: 619de649-4998-4996-bd74-085eaffdbbeb:Materials/Yellow
-                    cbed46fc14a1c47c4d4eced695ed170b: !Tutorials.Basics.DeltaTime,Tutorials
+                    24b7f5bd3cfc36f8672b3b62ed606393: !Tutorials.Basics.DeltaTime,Tutorials
                         Id: 0caffdca-f049-425b-a955-661da41dfa94
                         Id: 0caffdca-f049-425b-a955-661da41dfa94
         -   Entity:
         -   Entity:
                 Id: 52a3b5f6-5537-4513-ab9b-d6c1ff3e0e8f
                 Id: 52a3b5f6-5537-4513-ab9b-d6c1ff3e0e8f

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/Getting a component.xkscene

@@ -107,7 +107,7 @@ Hierarchy:
                         Id: 60e9ce47-a7f9-4167-960e-6be77ab17fe0
                         Id: 60e9ce47-a7f9-4167-960e-6be77ab17fe0
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Materials: {}
                         Materials: {}
-                    04b78b37519c1bdc636bd519738bddbc: !Tutorials.Basics.ChildEntities,Tutorials
+                    6a803cec291743efe8dc9f9ccfbd1133: !Tutorials.Basics.ChildEntities,Tutorials
                         Id: 1415e205-e12b-4112-89b0-dcb2e1e335db
                         Id: 1415e205-e12b-4112-89b0-dcb2e1e335db
         -   Entity:
         -   Entity:
                 Id: b9149b06-d557-48ea-be39-4d0ed9e95198
                 Id: b9149b06-d557-48ea-be39-4d0ed9e95198

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/Getting the entity.xkscene

@@ -81,5 +81,5 @@ Hierarchy:
                         Model: 5178da4c-69ec-4123-a502-ef9925474f3d:Models/Sphere
                         Model: 5178da4c-69ec-4123-a502-ef9925474f3d:Models/Sphere
                         Materials:
                         Materials:
                             0944ccdb2e13484e06b8de9bfe3e665f~0: ca5e832c-0dc0-42e8-bd85-fcb24bfd34f1:Materials/Green
                             0944ccdb2e13484e06b8de9bfe3e665f~0: ca5e832c-0dc0-42e8-bd85-fcb24bfd34f1:Materials/Green
-                    32ce3a8e6022e179df7e6e1307fdc8cd: !Tutorials.Basics.GettingTheEntity,Tutorials
+                    7075106a728dd702454bedcc071e10ed: !Tutorials.Basics.GettingTheEntity,Tutorials
                         Id: c6991602-3a4e-483c-a83c-977e108a0339
                         Id: c6991602-3a4e-483c-a83c-977e108a0339

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/Keyboard input.xkscene

@@ -54,7 +54,7 @@ Hierarchy:
                         Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
                         Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
                         Scale: {X: 1.0, Y: 1.0, Z: 1.0}
                         Scale: {X: 1.0, Y: 1.0, Z: 1.0}
                         Children: {}
                         Children: {}
-                    5d52f4fa8ee6759f92213b58db9ca856: !Tutorials.Basics.KeyboardInput,Tutorials
+                    b22d7fa8ac2e2bf2eccd40871f1ca145: !Tutorials.Basics.KeyboardInput,Tutorials
                         Id: efab93a3-3b5d-4e16-b2a5-2e514ade8056
                         Id: efab93a3-3b5d-4e16-b2a5-2e514ade8056
                         blueTheapot: ref!! 8cb12a7f-4d29-4a76-96f9-891bc5327ea6
                         blueTheapot: ref!! 8cb12a7f-4d29-4a76-96f9-891bc5327ea6
                         yellowTheapot: ref!! c29e99d3-a22d-40cd-a186-47f86e45368f
                         yellowTheapot: ref!! c29e99d3-a22d-40cd-a186-47f86e45368f

+ 150 - 0
Tutorials/Tutorials/Assets/Scenes/Basics/Mouse input.xkscene

@@ -0,0 +1,150 @@
+!SceneAsset
+Id: c00aec52-d6b8-4eab-80c2-460ac8109da6
+SerializedVersion: {Xenko: 3.1.0.1}
+Tags: []
+ChildrenIds: []
+Offset: {X: 0.0, Y: 0.0, Z: 0.0}
+Hierarchy:
+    RootParts:
+        - ref!! 0fda320b-b74c-4479-a57d-1a44435286de
+        - ref!! 0f01fe9b-6bed-4111-af0d-1844654b4d3d
+        - ref!! f05237c6-659d-41c2-8be3-851459f6239a
+        - ref!! 4bea4ea9-3407-4416-9b60-cf16883dfbe8
+        - ref!! 6d396448-ba38-4c5e-9ed5-9340b8fefc64
+        - ref!! 216b026f-a9fc-4b2b-9e67-1c0f155a75e2
+        - ref!! 30e33c30-2e4e-4897-bc5d-b0f4eaa6cf45
+        - ref!! d6a8c956-30ba-46eb-8c24-a2a4a21592aa
+    Parts:
+        -   Entity:
+                Id: 0f01fe9b-6bed-4111-af0d-1844654b4d3d
+                Name: Directional light
+                Components:
+                    cf26351dfd6822268d36b77072bcc655: !TransformComponent
+                        Id: 8d563b8d-7e08-40ea-80fc-b0081878900c
+                        Position: {X: 100.0, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 1.131334E-08, Y: 0.9659258, Z: 0.258819044, W: -4.222196E-08}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    e3f271d9c2060484c44e8dfef59ed0e3: !LightComponent
+                        Id: 77370dfc-9ddc-4966-9816-5dfa17a6f545
+                        Type: !LightDirectional
+                            Color: !ColorRgbProvider
+                                Value: {R: 1.0, G: 1.0, B: 1.0}
+                            Shadow:
+                                Enabled: true
+                                Filter: !LightShadowMapFilterTypePcf
+                                    FilterSize: Filter5x5
+                                Size: Large
+                                DepthRange: {}
+                                PartitionMode: !LightDirectionalShadowMap.PartitionLogarithmic {}
+                                ComputeTransmittance: false
+                                BiasParameters: {}
+                        Intensity: 20.0
+        -   Entity:
+                Id: 0fda320b-b74c-4479-a57d-1a44435286de
+                Name: Camera
+                Components:
+                    d5dd94550dc377d8b1703c74aae2cee5: !TransformComponent
+                        Id: 4d2b3f71-70d0-4927-9467-45c096173667
+                        Position: {X: -0.168541268, Y: 1.97455645, Z: -6.0}
+                        Rotation: {X: -7.915897E-09, Y: -0.9848077, Z: -0.173648179, W: 7.343504E-08}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    f1cc2f84c67fbd3cc50a22dd0ef605a5: !CameraComponent
+                        Id: f4800160-8977-4f13-9233-d935169d5def
+                        Name: null
+                        Projection: Perspective
+                        Slot: c9cb3666-f711-498c-9878-292e79ed7993
+        -   Entity:
+                Id: 216b026f-a9fc-4b2b-9e67-1c0f155a75e2
+                Name: Yellow Theapot
+                Components:
+                    f8eee6f467c9263f9fdd120f5463f988: !TransformComponent
+                        Id: dd47bf53-6469-4804-aeec-75dbde60f491
+                        Position: {X: 1.00255942, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    3633cb40f574236299aec88b18c090d2: !ModelComponent
+                        Id: ffbb7ad7-7ca0-4339-80d0-90f508821a87
+                        Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
+                        Materials:
+                            d520ca585d4faf100775350f15a43bf3~0: 619de649-4998-4996-bd74-085eaffdbbeb:Materials/Yellow
+        -   Entity:
+                Id: 30e33c30-2e4e-4897-bc5d-b0f4eaa6cf45
+                Name: Green Theapot
+                Components:
+                    f8eee6f467c9263f9fdd120f5463f988: !TransformComponent
+                        Id: ab577971-0021-4d67-a226-1f5458cf647d
+                        Position: {X: -0.9974407, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    3633cb40f574236299aec88b18c090d2: !ModelComponent
+                        Id: ba5afbab-0485-4027-9c07-5cacdd6d1f8c
+                        Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
+                        Materials:
+                            a7caa81c4d9afdde1e7b7968d7c4ea8a~0: ca5e832c-0dc0-42e8-bd85-fcb24bfd34f1:Materials/Green
+        -   Entity:
+                Id: 4bea4ea9-3407-4416-9b60-cf16883dfbe8
+                Name: Mouse input
+                Components:
+                    a754b53539c67302833c65636d012820: !TransformComponent
+                        Id: b124f6bb-07bd-4fdf-bc94-90cd114e18ef
+                        Position: {X: 0.0, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    4e62455c053a5b5961c68b8b05effb37: !Tutorials.Basics.MouseInput,Tutorials
+                        Id: da2611b5-fa7d-4762-ae15-9fed783499c3
+                        blueTheapot: ref!! 6d396448-ba38-4c5e-9ed5-9340b8fefc64
+                        yellowTheapot: ref!! 216b026f-a9fc-4b2b-9e67-1c0f155a75e2
+                        greenTheapot: ref!! 30e33c30-2e4e-4897-bc5d-b0f4eaa6cf45
+                        pinkTheapot: ref!! d6a8c956-30ba-46eb-8c24-a2a4a21592aa
+        -   Entity:
+                Id: 6d396448-ba38-4c5e-9ed5-9340b8fefc64
+                Name: Blue Theapot
+                Components:
+                    f8eee6f467c9263f9fdd120f5463f988: !TransformComponent
+                        Id: 31e6be99-cb82-4784-8539-b11dc2cde29e
+                        Position: {X: 3.00255942, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    3633cb40f574236299aec88b18c090d2: !ModelComponent
+                        Id: f28eb869-bffe-4d43-abb5-2554103f65ba
+                        Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
+                        Materials: {}
+        -   Folder: null
+            Entity:
+                Id: d6a8c956-30ba-46eb-8c24-a2a4a21592aa
+                Name: Pink Theapot
+                Components:
+                    f8eee6f467c9263f9fdd120f5463f988: !TransformComponent
+                        Id: ce3becbe-c248-4289-9723-1d1dff0421ec
+                        Position: {X: -2.94484043, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    3633cb40f574236299aec88b18c090d2: !ModelComponent
+                        Id: 437e99be-b661-4717-b00b-beb9e94af3a7
+                        Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
+                        Materials:
+                            a7caa81c4d9afdde1e7b7968d7c4ea8a~0: 7134c638-e559-4cee-9099-4a3da6653a70:Materials/Pink
+        -   Entity:
+                Id: f05237c6-659d-41c2-8be3-851459f6239a
+                Name: Skybox light
+                Components:
+                    88b62d474d21080cf1a760192a108619: !TransformComponent
+                        Id: 3992d495-fb73-41e7-8d75-f7903fbf8eec
+                        Position: {X: 100.0, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    b6410438b41b6be62428102415f68a4e: !LightComponent
+                        Id: 2c6cd40c-3513-42fd-a921-a1ab2045a600
+                        Type: !LightSkybox
+                            Skybox: ae4fd991-6290-4c24-b73b-25d81a1a4837:Materials/Skybox
+                    073131bbebf95a3cbbe2d431328d38b1: !BackgroundComponent
+                        Id: 80a4d7c5-2941-4818-be33-fae50cf06ca2
+                        Texture: b7f73672-f9bf-44ae-8a04-0017010b4ca1:Materials/Skybox texture

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/Properties.xkscene

@@ -50,7 +50,7 @@ Hierarchy:
                         Id: 2000ee21-442f-4031-a6bb-db244e0b9c13
                         Id: 2000ee21-442f-4031-a6bb-db244e0b9c13
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Materials: {}
                         Materials: {}
-                    c8e9503a549427f69146c243e118f2d0: !Tutorials.Basics.BasicsProperties,Tutorials
+                    db7ae0113850db0d90246eb554f68d01: !Tutorials.Basics.BasicsProperties,Tutorials
                         Id: 5e0cdc70-b203-4246-9b97-823eafe43ddb
                         Id: 5e0cdc70-b203-4246-9b97-823eafe43ddb
                         aBoolean: true
                         aBoolean: true
                         aFloat: 5.6
                         aFloat: 5.6

+ 1 - 1
Tutorials/Tutorials/Assets/Scenes/Basics/TransformPosition.xkscene

@@ -98,5 +98,5 @@ Hierarchy:
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
                         Materials:
                         Materials:
                             89884ee883567432a2d5454ed2de3164~0: 619de649-4998-4996-bd74-085eaffdbbeb:Materials/Yellow
                             89884ee883567432a2d5454ed2de3164~0: 619de649-4998-4996-bd74-085eaffdbbeb:Materials/Yellow
-                    119c35b4f547fd89594d2b38c6a65360: !Tutorials.Basics.BasicsTransformPosition,Tutorials
+                    f397d1c1e878220079b791a903144388: !Tutorials.Basics.BasicsTransformPosition,Tutorials
                         Id: 7db9e13c-7b03-4a1a-9a39-f5258fb6a72b
                         Id: 7db9e13c-7b03-4a1a-9a39-f5258fb6a72b

+ 98 - 0
Tutorials/Tutorials/Assets/Scenes/Basics/Virtual buttons.xkscene

@@ -0,0 +1,98 @@
+!SceneAsset
+Id: 328aea72-1405-48be-bf32-2363a61870f7
+SerializedVersion: {Xenko: 3.1.0.1}
+Tags: []
+ChildrenIds: []
+Offset: {X: 0.0, Y: 0.0, Z: 0.0}
+Hierarchy:
+    RootParts:
+        - ref!! 24a65d39-df51-45e9-a100-e2f435f06dcb
+        - ref!! e42ef255-f872-4893-8d2a-b9355488a119
+        - ref!! c6b9c8d3-7ef4-47b5-b5ea-57a2fa5ad460
+        - ref!! 34e856ec-512a-4686-aaaf-f71d32082685
+        - ref!! 842c111f-8523-40b6-ac65-314d6167c8c9
+    Parts:
+        -   Entity:
+                Id: 24a65d39-df51-45e9-a100-e2f435f06dcb
+                Name: Camera
+                Components:
+                    d5dd94550dc377d8b1703c74aae2cee5: !TransformComponent
+                        Id: 82293632-fd7e-4226-9416-f837639e1898
+                        Position: {X: -0.168541268, Y: 1.97455645, Z: -6.0}
+                        Rotation: {X: -7.915897E-09, Y: -0.9848077, Z: -0.173648179, W: 7.343504E-08}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    f1cc2f84c67fbd3cc50a22dd0ef605a5: !CameraComponent
+                        Id: aa8828f8-323e-438d-9266-b5b061e0a3e4
+                        Name: null
+                        Projection: Perspective
+                        Slot: c9cb3666-f711-498c-9878-292e79ed7993
+        -   Entity:
+                Id: 34e856ec-512a-4686-aaaf-f71d32082685
+                Name: Virtual buttons
+                Components:
+                    a754b53539c67302833c65636d012820: !TransformComponent
+                        Id: 445b11b3-3626-4dc7-ab10-07d75d64d991
+                        Position: {X: 0.0, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    642eda2ac622b72046efbdebc8acf4c7: !Tutorials.Basics.VirtualButtons,Tutorials
+                        Id: b71976e5-bc66-4213-883b-3ebfd3ce5404
+                        blueTheapot: ref!! 842c111f-8523-40b6-ac65-314d6167c8c9
+        -   Entity:
+                Id: 842c111f-8523-40b6-ac65-314d6167c8c9
+                Name: Blue Theapot
+                Components:
+                    f8eee6f467c9263f9fdd120f5463f988: !TransformComponent
+                        Id: 56e36513-da23-456b-be30-832e6964f089
+                        Position: {X: 3.00255942, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    3633cb40f574236299aec88b18c090d2: !ModelComponent
+                        Id: aebc4307-0e39-411b-9014-bc30fb2d3a33
+                        Model: 9a3a7dbc-7b08-478a-aab2-19afe1d6ce1c:Models/Teapot
+                        Materials: {}
+        -   Entity:
+                Id: c6b9c8d3-7ef4-47b5-b5ea-57a2fa5ad460
+                Name: Skybox light
+                Components:
+                    88b62d474d21080cf1a760192a108619: !TransformComponent
+                        Id: d05a0cf6-2581-4887-81b8-7e5207a8dd0f
+                        Position: {X: 100.0, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 0.0, Y: 0.0, Z: 0.0, W: 1.0}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    b6410438b41b6be62428102415f68a4e: !LightComponent
+                        Id: f527f4af-015c-4626-bbe4-55f8b3305bed
+                        Type: !LightSkybox
+                            Skybox: ae4fd991-6290-4c24-b73b-25d81a1a4837:Materials/Skybox
+                    073131bbebf95a3cbbe2d431328d38b1: !BackgroundComponent
+                        Id: 5004a420-6f37-4767-8a48-99631232e4f6
+                        Texture: b7f73672-f9bf-44ae-8a04-0017010b4ca1:Materials/Skybox texture
+        -   Entity:
+                Id: e42ef255-f872-4893-8d2a-b9355488a119
+                Name: Directional light
+                Components:
+                    cf26351dfd6822268d36b77072bcc655: !TransformComponent
+                        Id: 5ff4b01a-b3a6-421d-aad8-cdff4c900026
+                        Position: {X: 100.0, Y: 0.0, Z: 0.0}
+                        Rotation: {X: 1.131334E-08, Y: 0.9659258, Z: 0.258819044, W: -4.222196E-08}
+                        Scale: {X: 1.0, Y: 1.0, Z: 1.0}
+                        Children: {}
+                    e3f271d9c2060484c44e8dfef59ed0e3: !LightComponent
+                        Id: 51e43bdb-f13f-4efa-8751-3fd9cff6b2f1
+                        Type: !LightDirectional
+                            Color: !ColorRgbProvider
+                                Value: {R: 1.0, G: 1.0, B: 1.0}
+                            Shadow:
+                                Enabled: true
+                                Filter: !LightShadowMapFilterTypePcf
+                                    FilterSize: Filter5x5
+                                Size: Large
+                                DepthRange: {}
+                                PartitionMode: !LightDirectionalShadowMap.PartitionLogarithmic {}
+                                ComputeTransmittance: false
+                                BiasParameters: {}
+                        Intensity: 20.0

+ 55 - 0
Tutorials/Tutorials/Basics/MouseInput.cs

@@ -0,0 +1,55 @@
+using Xenko.Core.Mathematics;
+using Xenko.Engine;
+using Xenko.Input;
+
+namespace Tutorials.Basics {
+    /// <summary>
+    /// This script demonstrates how to check for any mouse input.
+    /// </summary>
+    public class MouseInput : SyncScript {
+        public Entity blueTheapot;
+        public Entity yellowTheapot;
+        public Entity greenTheapot;
+        public Entity pinkTheapot;
+
+        private float currentScrollIndex = 0;
+
+        public override void Start() {}
+
+        public override void Update() {
+            //First lets check if we have a mouse.
+            if (Input.HasMouse) {
+
+                //Key down is used for when a key is being held down.
+                DebugText.Print("Hold the left mouse button down to rotate the blue theapot", new Int2(50, 120));
+                if (Input.IsMouseButtonDown(MouseButton.Left)) {
+                    var deltaTime = (float)Game.UpdateTime.Elapsed.TotalSeconds;
+                    blueTheapot.Transform.RotationEulerXYZ += new Vector3(0, 0.3f * deltaTime, 0);
+                }
+
+                //Use 'IsMouseButtonPressed' for a single mouse click event. 
+                DebugText.Print("Click the right mouse button to rotate the yellow theapot", new Int2(50, 160));
+                if (Input.IsMouseButtonPressed(MouseButton.Right)) {
+                    yellowTheapot.Transform.RotationEulerXYZ += new Vector3(0, 35, 0);
+                }
+
+                //'IsMouseButtonReleased' is used for when you want to know when a mouse button is released after being either held down or pressed. 
+                DebugText.Print("Press and release the middel mousebutton/scrollwheel to rotate the green theapot", new Int2(50, 200));
+                if (Input.IsMouseButtonReleased(MouseButton.Middle)) {
+                    greenTheapot.Transform.RotationEulerXYZ += new Vector3(0, 55, 0);
+                }
+
+                //We can use the mousewheel delta do determine if a mousewheel has rotated. 
+                //Scrolling forward gives a mousewheel delta of 1, and scrolling backwards gives a mousewheel delta of -1. 
+                //If in the next frame the mousewheel is not scrolled, the mouse wheel delta is 0 again.
+                currentScrollIndex += Input.MouseWheelDelta;
+                DebugText.Print("Scroll the mouse wheel to rotate the pink theapot. Scroll index: " + currentScrollIndex, new Int2(50, 240));
+                pinkTheapot.Transform.RotationEulerXYZ = new Vector3(0, 0.4f * currentScrollIndex, 0);
+
+                //We can draw some text at the position of our mouse by getting the absolute mouse position
+                var mousePos = Input.AbsoluteMousePosition;
+                DebugText.Print("Mouse position: " + mousePos, new Int2(mousePos));
+            }
+        }
+    }
+}

+ 43 - 0
Tutorials/Tutorials/Basics/VirtualButtons.cs

@@ -0,0 +1,43 @@
+using Xenko.Core.Mathematics;
+using Xenko.Engine;
+using Xenko.Input;
+
+namespace Tutorials.Basics {
+    /// <summary>
+    /// This script demonstrates how to create virtual buttons and how to use them.
+    /// </summary>
+    public class VirtualButtons : SyncScript {
+        public Entity blueTheapot;
+
+        public override void Start() {
+            // Create a new VirtualButtonConfigSet if none exists. 
+            Input.VirtualButtonConfigSet = Input.VirtualButtonConfigSet ?? new VirtualButtonConfigSet();
+
+            //Bind the "W" key and "Up arrow" a virtual button called "Forward".
+            var forwardW = new VirtualButtonBinding("Forward", VirtualButton.Keyboard.W);
+            var forwardUpArrow = new VirtualButtonBinding("Forward", VirtualButton.Keyboard.Up);
+            var forwardLeftMouse = new VirtualButtonBinding("Forward", VirtualButton.Mouse.Left);
+
+            //Create a new virtual button configuration and add the virtual button bindings
+            var virtualButtonForward = new VirtualButtonConfig();
+            virtualButtonForward.Add(forwardW);
+            virtualButtonForward.Add(forwardUpArrow);
+            virtualButtonForward.Add(forwardLeftMouse);
+
+            //Add the virtual button binding to the virtual button configuration
+            Input.VirtualButtonConfigSet.Add(virtualButtonForward);
+        }
+
+        public override void Update() {
+            //We retrieve a float value from the virtual button. When the value is higher than 0, we now that we have at least of keys or mouse pressed
+            var movingForward = Input.GetVirtualButton(0, "Forward");
+
+            DebugText.Print("Holding down either W, the Up arrow or clicking the left mouse button, will result in a rotating blue theapot.", new Int2(50, 120));
+            DebugText.Print("Virtual button Forward: " + movingForward, new Int2(50, 160));
+            if (movingForward > 0) {
+                var deltaTime = (float)Game.UpdateTime.Elapsed.TotalSeconds;
+                blueTheapot.Transform.RotationEulerXYZ += new Vector3(0, 0.2f * deltaTime, 0);
+            }
+        }
+    }
+}

+ 1 - 1
en/tutorials/csharpbasics/childEntities.md

@@ -4,7 +4,7 @@ You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **
 ## Explanation
 ## Explanation
 This C# basics tutorial covers how to get an enties children. Since those children are also entities, we can retrieve their children too.
 This C# basics tutorial covers how to get an enties children. Since those children are also entities, we can retrieve their children too.
 
 
-![Editor properties](media/child-entities.png)
+![Child entities](media/child-entities.png)
 
 
 ## Code
 ## Code
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\ChildEntities.cs)]
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\ChildEntities.cs)]

+ 1 - 1
en/tutorials/csharpbasics/cloningEntities.md

@@ -4,7 +4,7 @@ You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **
 ## Explanation
 ## Explanation
 This C# basics tutorial covers how to clone an existing entity and how to add that clone to the scene. A cloned entity is an exact copy which means that the Transformd and all other components are copied to.
 This C# basics tutorial covers how to clone an existing entity and how to add that clone to the scene. A cloned entity is an exact copy which means that the Transformd and all other components are copied to.
 
 
-![Editor properties](media/cloning-entities.png)
+![Cloning entities](media/cloning-entities.png)
 
 
 ## Code
 ## Code
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\CloneEntity.cs)]
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\CloneEntity.cs)]

+ 1 - 1
en/tutorials/csharpbasics/getComponent.md

@@ -4,7 +4,7 @@ You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **
 ## Explanation
 ## Explanation
 This C# basics tutorial covers how to get and remove components. Components are the of the most important concepts in Xenko. Every entity in the scene has a list of components. The transform for instance is also a component. When we make custom scripts that inherit from SyncScript or AsyncScript, they turn in to Components that we can attach to entities. Either using the editor or by code.
 This C# basics tutorial covers how to get and remove components. Components are the of the most important concepts in Xenko. Every entity in the scene has a list of components. The transform for instance is also a component. When we make custom scripts that inherit from SyncScript or AsyncScript, they turn in to Components that we can attach to entities. Either using the editor or by code.
 
 
-![Delta time](media/getting-a-component.png)
+![Get a component](media/getting-a-component.png)
 
 
 ## Code
 ## Code
 ### AmmoComponent
 ### AmmoComponent

+ 1 - 1
en/tutorials/csharpbasics/keyboardInput.md

@@ -4,7 +4,7 @@ You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **
 ## Explanation
 ## Explanation
 This C# basics tutorial covers how to handle keyboard input. We can check for the existisce of a keyboard and then we can use various methods to check if a key is pressed, held down or released.
 This C# basics tutorial covers how to handle keyboard input. We can check for the existisce of a keyboard and then we can use various methods to check if a key is pressed, held down or released.
 
 
-![Delta time](media/keyboard-input.png)
+![Keyboard input](media/keyboard-input.png)
 
 
 ## Code
 ## Code
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\KeyboardInput.cs)]
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\KeyboardInput.cs)]

+ 3 - 0
en/tutorials/csharpbasics/media/mouse-input.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b851c3c13a2331efe2a441b25b0a9a3d3b9b61ad7d632027b79e9b6554ca793
+size 169041

+ 3 - 0
en/tutorials/csharpbasics/media/virtual-buttons.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44cf10ee212fa37315815f91c951722426201d06f9d4a640acf40248595cb499
+size 38336

+ 3 - 3
en/tutorials/csharpbasics/mouseInput.md

@@ -1,10 +1,10 @@
-# KeybMouseoard input
+# Mouse input
 You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **Mouse input** 
 You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **Mouse input** 
 
 
 ## Explanation
 ## Explanation
-This C# basics tutorial covers how to handle mouse input. We can check for the existance of a mouse and then we can use various methods to check if a mouse buttons are clicked, held down or released. We can also for the mouse wheel being scrolled and clicked.
+This C# basics tutorial covers how to handle mouse input. We can check for the existance of a mouse and then we can use various methods to check if a mouse buttons are clicked, held down or released. We can also for the mouse wheel (middle mouse) being clicked. We can use the mouse wheel delta to determine if the mouse wheel has been scrolled in a frame. And finally we learn how to use the absolute mouse position to draw text at the position of the mouse on the screen.
 
 
-![Delta time](media/mouse-input.png)
+![Mouse input](media/mouse-input.png)
 
 
 ## Code
 ## Code
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\MouseInput.cs)]
 [!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\MouseInput.cs)]

+ 3 - 3
en/tutorials/csharpbasics/virtualButtons.md

@@ -2,9 +2,9 @@
 You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **Virtual buttons** 
 You can find this sample in the tutorial project: **Scenes** -> **Basics** -> **Virtual buttons** 
 
 
 ## Explanation
 ## Explanation
-This C# basics tutorial covers how to virtual buttons. Lets say that you a player to jump when a key is pressed. The spacebar is a common option, but what if a gamer wants to have a different key bind to this 'Jump' action. The answer here is the 'Virtual button'. Virtual buttons allow to bind 1 or more keyboard keys, mousebuttons and joystick button to be mapped to a single 'Virtual button'. We can check for the name of that virtual button and if any of the mapped inputs is true, than the virtual button can is triggered.
+This C# basics tutorial covers how to virtual buttons. Lets say that you a player to jump when a key is pressed. The spacebar is a common option, but what if a gamer wants to have a different key bind to this 'Forward' action. The answer here is the 'Virtual button'. Virtual buttons allow the mapping of 1 or more keyboard keys, mousebuttons or joystick buttons to a single 'Virtual button'. We can check for the name of that virtual button to see if any of the virtual button is triggered.
 
 
-![Delta time](media/virtual-button.png)
+![Virtual buttons](media/virtual-buttons.png)
 
 
 ## Code
 ## Code
-[!code-csharp[Entity](..\..\..\Tutorials\Tutorials\Basics\VirtualButtons.cs)]
+[!code-csharp[VirtualButtons](..\..\..\Tutorials\Tutorials\Basics\VirtualButtons.cs)]

+ 1 - 1
en/tutorials/toc.md

@@ -8,7 +8,7 @@
 ### [Editor properties](csharpbasics/editorproperties.md) 
 ### [Editor properties](csharpbasics/editorproperties.md) 
 ### [Getting a component](csharpbasics/getcomponent.md) 
 ### [Getting a component](csharpbasics/getcomponent.md) 
 ### [Cloning an entity](csharpbasics/cloningEntities.md) 
 ### [Cloning an entity](csharpbasics/cloningEntities.md) 
-### [Removing an entity](csharpbasics/destroyingentities.md) 
+### [Removing an entity](csharpbasics/removingEntities.md) 
 ### [Keyboard input](csharpbasics/keyboardInput.md) 
 ### [Keyboard input](csharpbasics/keyboardInput.md) 
 ### [Mouse input](csharpbasics/mouseInput.md) 
 ### [Mouse input](csharpbasics/mouseInput.md) 
 ### [Virtual buttons](csharpbasics/virtualButtons.md)
 ### [Virtual buttons](csharpbasics/virtualButtons.md)