Kaynağa Gözat

intermediate updates

Aggror Desktop 3 yıl önce
ebeveyn
işleme
fc2d6ac763

+ 2 - 2
en/tutorials/csharpintermediate/animation-basics.md

@@ -1,9 +1,9 @@
 # Animation basics
 # Animation basics
 
 
 ## Explanation
 ## Explanation
-This C# Beginner tutorial covers how to create virtual buttons. Lets say that you want a player to jump when a key is pressed. The space bar 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 the mapping of one or more keyboard keys, mouse buttons 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 buttons are triggered.
+This C# Intermediate tutorial covers the basics of animation with Stride. All animations exist as animation clips assets in your project. From there on we can start, pause and stop animations by using Stride's animation component
 
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/uWgson2IIhs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 <iframe width="560" height="315" src="https://www.youtube.com/embed/uWgson2IIhs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 ## Code
 ## Code
-[!code-csharp[VirtualButtons](..\..\..\..\stride\samples\Tutorials\CSharpBeginner\CSharpBeginner\CSharpBeginner.Game\Code\VirtualButtonsDemo.cs)]
+[!code-csharp[NavigateCharacter](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\07_Animation\AnimationBasics.cs)]

+ 3 - 3
en/tutorials/csharpintermediate/async-scripts.md

@@ -10,10 +10,10 @@ With Async scripts we can perform heavy duty operations or reach out to an api w
 ## Code
 ## Code
 ### Async Collision trigger
 ### Async Collision trigger
 In a previous tutorial we made a collision trigger script that would notify the user once an object is passing through it. We can make a similar script using Async script.
 In a previous tutorial we made a collision trigger script that would notify the user once an object is passing through it. We can make a similar script using Async script.
-[!code-csharp[collisiontriggerdemo](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\05_Async\AsyncCollisionTriggerDemo.cs)]
+[!code-csharp[AsyncCollisionTrigger](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\05_Async\AsyncCollisionTriggerDemo.cs)]
 
 
 ### Retrieving data from a web api
 ### Retrieving data from a web api
-In a previous tutorial we made a collision trigger script that would notify the user once an object is passing through it. We can make a similar script using Async script.
-[!code-csharp[collisiontriggerdemo](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\05_Async\AsyncWebApi.cs)]
+Another common usecase for async scripts, is retrieving data from a web API. Depending on the speed of the API and the amount of data to be be retrieved this mostly take up somewhere between 20 milliseconds and 2 seconds. 
+[!code-csharp[AsyncWebApi](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\05_Async\AsyncWebApi.cs)]
 
 
 
 

+ 5 - 2
en/tutorials/csharpintermediate/audio.md

@@ -1,9 +1,12 @@
 # Audio
 # Audio
 
 
 ## Explanation
 ## Explanation
-This C# Beginner tutorial covers how to handle keyboard input. We can check for the existence of a keyboard and then we can use various methods to check if a key is pressed, held down or released.
+This C# Intermediate tutorial covers the basics of audio in your game. We learn about the various types of audio formats and settings. We cover how to user 3d spatialized audio and we also look at streaming audio.
 
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/UvKizPFAego" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 <iframe width="560" height="315" src="https://www.youtube.com/embed/UvKizPFAego" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 ## Code
 ## Code
-[!code-csharp[Entity](..\..\..\..\stride\samples\Tutorials\CSharpBeginner\CSharpBeginner\CSharpBeginner.Game\Code\KeyboardInputDemo.cs)]
+### Camera controller
+[!code-csharp[audio](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\08_Audio\AudioDemo.cs)]
+
+[!code-csharp[streamming audio](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\08_Audio\LoadMusic.cs)]

+ 2 - 2
en/tutorials/csharpintermediate/collision-triggers.md

@@ -5,10 +5,10 @@ This C# intermediate tutorial covers the use of collision triggers. It teaches a
 
 
 Rigid bodies determine how entites in our scene behave on gravity, whether they collider with other objects or in the case of this tutorial": trigger collision events in our code. We do this by setting up a collider box in our scene and letting a sphere roll through this object. The events that are triggered are then processed by the script that we will make for it.
 Rigid bodies determine how entites in our scene behave on gravity, whether they collider with other objects or in the case of this tutorial": trigger collision events in our code. We do this by setting up a collider box in our scene and letting a sphere roll through this object. The events that are triggered are then processed by the script that we will make for it.
 
 
-<iframe width="560" height="315" src="https://www.youtube.com/embed/TzwGe4RzAb4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+<iframe width="560" height="315" src="https://www.youtube.com/embed/SIy3pfoXfoQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 ## Code
 ## Code
-### Stride editor UI pages
+### Rigidbodies and collisions
 The code below looks for the rigidbody component that is attached to our entity. The rigidbody component contains all information we need for setting up triggers. The "IsTrigger" property determines that our collider doesn't stop other physics objects, but that it does trigger events in code (if they are set up at least).
 The code below looks for the rigidbody component that is attached to our entity. The rigidbody component contains all information we need for setting up triggers. The "IsTrigger" property determines that our collider doesn't stop other physics objects, but that it does trigger events in code (if they are set up at least).
 
 
 We spawn a sphere which also has a rigidbody. This sphere has a mass and is affected by gravity. The sphere will fall down and eventually roll through our collider box. In our update loop we check if there are collisions happening. If there are collisions, we get the colliding object and print out some text on screen. Once there sphere leaves the trigger box, our update loop sees that we no longer having collisions.
 We spawn a sphere which also has a rigidbody. This sphere has a mass and is affected by gravity. The sphere will fall down and eventually roll through our collider box. In our update loop we check if there are collisions happening. If there are collisions, we get the colliding object and print out some text on screen. Once there sphere leaves the trigger box, our update loop sees that we no longer having collisions.

+ 1 - 1
en/tutorials/csharpintermediate/first-person-camera.md

@@ -1,7 +1,7 @@
 # First person camera
 # First person camera
 
 
 ## Explanation
 ## Explanation
-This C# Intermediate tutorial covers
+This C# Intermediate tutorial covers the implementation of first person camera. You learn about mouse movement and how to convert that in to a 3d rotation. We setup camera angle limitsand finally we apply movement to a first person character controller.
 
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/19u2QACzdAk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 <iframe width="560" height="315" src="https://www.youtube.com/embed/19u2QACzdAk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 

+ 2 - 2
en/tutorials/csharpintermediate/index.md

@@ -1,9 +1,9 @@
 # C# Intermediate
 # C# Intermediate
 These tutorials cover various intermediate principles of using C# when working with the Stride game engine. It is recommended that you go through all the C# Beginner tutorials first before going through all the intermediate tutorials. You can create the C# intermediate tutorial project by starting the Stride launcher. Create a new project and select the template: Tutorials -> C# intermediate. Every single tutorial has a 'Start' and a 'Completed' scene. You can view the Completed scenes to see what the end result of each tutorial will roughly look like. If you are following along with the videos, you can use the Start scenes as a good starting point. Those scenes only contain the bare minimum setup. 
 These tutorials cover various intermediate principles of using C# when working with the Stride game engine. It is recommended that you go through all the C# Beginner tutorials first before going through all the intermediate tutorials. You can create the C# intermediate tutorial project by starting the Stride launcher. Create a new project and select the template: Tutorials -> C# intermediate. Every single tutorial has a 'Start' and a 'Completed' scene. You can view the Completed scenes to see what the end result of each tutorial will roughly look like. If you are following along with the videos, you can use the Start scenes as a good starting point. Those scenes only contain the bare minimum setup. 
 
 
-All tutorials have a Youtube video. You can watch the entire Intermediate playlist here: https://www.youtube.com/playlist?list=PLRZx2y7uC8mNySUMfOQf-TLNVnnHkLfPi 
+All tutorials have a Youtube video. You can watch the entire Intermediate playlist here: https://www.youtube.com/watch?v=WBQmXKPXbCA&list=PLRZx2y7uC8mOE6_L0ZiFxNBE7HmzU2dP7
 
 
-<iframe width="560" height="315" src="https://www.youtube.com/embed/Z2kUQhSmdr0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+<iframe width="560" height="315" src="https://www.youtube.com/embed/WBQmXKPXbCA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 # All tutorials 
 # All tutorials 
 <div class='tutorial'>
 <div class='tutorial'>

+ 3 - 2
en/tutorials/csharpintermediate/navigation.md

@@ -1,9 +1,10 @@
 # Navigation
 # Navigation
 
 
 ## Explanation
 ## Explanation
-This C# Beginner tutorial covers how to handle keyboard input. We can check for the existence of a keyboard and then we can use various methods to check if a key is pressed, held down or released.
+This C# Intermediate tutorial covers the basics of the navigation system in Stride. In our world we can have so called 'navigation meshes'. These are meshes that are generated around your level geometry. The navigation mesh is used to calculate the quickest path to a destination. 
+We learn about the editors Navigation mesh settings, navigation bounding boxes and in code we learn how move an object to a destination.
 
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/UvKizPFAego" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 <iframe width="560" height="315" src="https://www.youtube.com/embed/UvKizPFAego" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 ## Code
 ## Code
-[!code-csharp[uibycode](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\11_Navigation\NavigateCharacter.cs)]
+[!code-csharp[NavigateCharacter](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\11_Navigation\NavigateCharacter.cs)]

+ 1 - 2
en/tutorials/csharpintermediate/scenes.md

@@ -1,7 +1,7 @@
 # Scenes
 # Scenes
 
 
 ## Explanation
 ## Explanation
-This C# Intermediate tutorial covers loading/unloading scenes and child scenes. Levels in Stride are build using 'Scenes'. A scene is hierarchy of the objects or entities in your world. A single scene can contain an infinite amount of child scenes which can be loaded and unloaded at any point. Those child scenes can be loaded with an offset if desired.
+This C# Intermediate tutorial covers the implementation of a third person camera. Since it reuses a large portion of the ![First person camera](first-person-camera.md), it is recommended that your watch that tutorial first.
 
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/2N6NhijZuJk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 <iframe width="560" height="315" src="https://www.youtube.com/embed/2N6NhijZuJk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
@@ -11,5 +11,4 @@ This C# Intermediate tutorial covers loading/unloading scenes and child scenes.
 [!code-csharp[editorpages](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\06_Scenes\LoadChildScene.cs)]
 [!code-csharp[editorpages](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\06_Scenes\LoadChildScene.cs)]
 
 
 ### (Re)loading a scene
 ### (Re)loading a scene
-
 [!code-csharp[editorpages](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\06_Scenes\LoadScene.cs)]
 [!code-csharp[editorpages](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\06_Scenes\LoadScene.cs)]

+ 3 - 2
en/tutorials/csharpintermediate/third-person-camera.md

@@ -1,12 +1,13 @@
 # First person camera
 # First person camera
 
 
 ## Explanation
 ## Explanation
-This C# Intermediate tutorial covers
+This C# Intermediate tutorial covers the implementation of a third person camera. Since it reuses a large portion of the ![First person camera](first-person-camera.md), it is recommended that your watch that tutorial first.
+This tutorial teaches about how to use raycasting to position the camera behind the player. If the player is to close any walls, the camera will be moved closer to the player. Too close to the player? We simply switch to first person mode.
 
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/19u2QACzdAk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 <iframe width="560" height="315" src="https://www.youtube.com/embed/19u2QACzdAk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 ## Code
 ## Code
-### Camera controller
+### Third person camera
 [!code-csharp[firstpersoncamera](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\10_ThirdPersonCamera\ThirdPersonCamera.cs)]
 [!code-csharp[firstpersoncamera](..\..\..\..\stride\samples\Tutorials\CSharpIntermediate\CSharpIntermediate\CSharpIntermediate.Game\10_ThirdPersonCamera\ThirdPersonCamera.cs)]
 
 
 ### Character movement
 ### Character movement

+ 1 - 1
en/tutorials/csharpintermediate/ui-basics.md

@@ -7,7 +7,7 @@ Those UI elements can be referenced in code, so that can set up events like "but
 
 
 ![Cloning entities](media/ui-basics.png)
 ![Cloning entities](media/ui-basics.png)
 
 
-<iframe width="560" height="315" src="https://www.youtube.com/embed/TzwGe4RzAb4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+<iframe width="560" height="315" src="https://www.youtube.com/embed/rB5duwfs1mU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 ## Code
 ## Code
 ### Stride editor UI pages
 ### Stride editor UI pages

+ 1 - 1
en/tutorials/toc.md

@@ -13,7 +13,7 @@
 ### [Models](gamestudio/10-models.md)
 ### [Models](gamestudio/10-models.md)
 ### [Physics intro](gamestudio/11-physics-intro.md)
 ### [Physics intro](gamestudio/11-physics-intro.md)
 ### [Static colliders](gamestudio/12-static-colliders.md)
 ### [Static colliders](gamestudio/12-static-colliders.md)
-## [C# intermediate](csharpbeginner/index.md)
+## [C# Beginner](csharpbeginner/index.md)
 ### [Getting the Entity](csharpbeginner/entity.md)
 ### [Getting the Entity](csharpbeginner/entity.md)
 ### [Child entities](csharpbeginner/child-entities.md) 
 ### [Child entities](csharpbeginner/child-entities.md) 
 ### [Transform Position](csharpbeginner/transform-Position.md) 
 ### [Transform Position](csharpbeginner/transform-Position.md)