diff --git a/~Documentation/images/AnimationTransitionA.gif b/~Documentation/images/AnimationTransitionA.gif new file mode 100644 index 0000000..0969b09 Binary files /dev/null and b/~Documentation/images/AnimationTransitionA.gif differ diff --git a/~Documentation/images/AnimationTransitionB.gif b/~Documentation/images/AnimationTransitionB.gif new file mode 100644 index 0000000..7066941 Binary files /dev/null and b/~Documentation/images/AnimationTransitionB.gif differ diff --git a/~Documentation/images/AnimatorControllerNodes.png b/~Documentation/images/AnimatorControllerNodes.png new file mode 100644 index 0000000..0fdba5d Binary files /dev/null and b/~Documentation/images/AnimatorControllerNodes.png differ diff --git a/~Documentation/images/AnimatorControllerParams.gif b/~Documentation/images/AnimatorControllerParams.gif new file mode 100644 index 0000000..9bd9661 Binary files /dev/null and b/~Documentation/images/AnimatorControllerParams.gif differ diff --git a/~Documentation/images/AnimatorProblemTransTime.gif b/~Documentation/images/AnimatorProblemTransTime.gif new file mode 100644 index 0000000..07cde3b Binary files /dev/null and b/~Documentation/images/AnimatorProblemTransTime.gif differ diff --git a/~Documentation/images/SkeleterneKommer.gif b/~Documentation/images/SkeleterneKommer.gif new file mode 100644 index 0000000..e69de29 diff --git a/~Documentation/images/Unity_L5hnkcZ1dv.gif b/~Documentation/images/Unity_L5hnkcZ1dv.gif new file mode 100644 index 0000000..2608815 Binary files /dev/null and b/~Documentation/images/Unity_L5hnkcZ1dv.gif differ diff --git a/~Documentation/topics/Opgave-1-3D-og-Lyd.md b/~Documentation/topics/Opgave-1-3D-og-Lyd.md index 6ba1031..e3e302c 100644 --- a/~Documentation/topics/Opgave-1-3D-og-Lyd.md +++ b/~Documentation/topics/Opgave-1-3D-og-Lyd.md @@ -51,8 +51,75 @@ Så skulle idle gerne virke 🕺💃 ![SkeletonIdle.gif](SkeletonIdle.gif) +## Animator Window + +Som vi tidligere så så var der et **Animator** Window. Dette vindue er hvor vi kan lave animationer og transitions mellem dem. +Når i åbner den ville I se nogle tabs i toppen. Disse tabs er: +- **Parameters**: Her kan vi lave parametre som vi kan bruge til at skifte mellem animationer. +- **Layers**: Her kan vi lave flere lag (noget vi ikke skal bruge på denne camp). + +For at lave en parameter skal vi trykke på `+` knappen og vælge hvilken type parameter vi vil have. +De vigstigste typer for os er: +- **Float**: En float er et decimal tal. Dette kan bruges til at skifte mellem animationer baseret på en værdi. +- **Trigger**: En trigger er en bool der bliver sat til `true` en enkelt gang når den bliver kaldt. Men så snart der sker en transition bliver den `false`. Dette kan bruges til at skifte mellem animationer baseret på en handling. + +![AnimatorControllerParams.gif](AnimatorControllerParams.gif) + +Tilføj nogle flere animationer (en for at gå/at løbe og en for at skyde). Vi valgte `Running_B` og `1H_Ranged_Shoot` for at gøre dette. + +![AnimatorControllerNodes.png](AnimatorControllerNodes.png) + +Nu mangler vi blot at lave transitions mellem animationerne. Dette gøres ved at trække en linje fra en animation til en anden. + +Derudover er det også vigtig at definere hvad der skal til for at skifte mellem animationerne. Dette gøres ved at klikke på en transition og kigge på `Conditions` i inspektoren. I den nedstående gif ser vi hvordan vi sætter transitions og hvordan man sætter conditions op for `Shoot`: + +![AnimationTransitionA.gif](AnimationTransitionA.gif) + +Og her er så det samme men for walking `Speed`. + +![AnimationTransitionB.gif](AnimationTransitionB.gif) + ## Animator kode +Parameterne er klar men koden mangler stadig. +For at få animationen til at virke i koden, skal vi først have en reference til `Animator` componentet. Dette gøres ved at skrive `public Animator animator;` inde i scriptet der skal bruge det. +(Hvilke er `PlayerMovement` i dette tilfælde). + +```C# +public Animator animator; + +void Update() +{ + // ... + + // Animation kode går under her (efter movement kode) + animator.SetFloat("Speed", rb.velocity.magnitude); +} +``` + +```C# +void Update() +{ + if (...) // Dette er det eksisterende if statement i Shooting + // scriptet der styrer om spilleren skyder + { + animator.SetTrigger("Shoot"); + } +} +``` + +Men åh nej, der er jo stadig et problem! Vores transitions er for langsomme: + +![AnimatorProblemTransTime.gif](AnimatorProblemTransTime.gif) + +For at fikse det skal i fjerne `Has Exit Time` fra alle transitions. +Derudover skal i også fjerne `Transition Duration` fra alle transitions. (kan gøres ved at slide timelinen) + +![Unity_L5hnkcZ1dv.gif](Unity_L5hnkcZ1dv.gif) + ## Opgave B +- Gør det samme for fjender men med skelet modellen. + + ## Lyd