18. diel - Unity (C #) Android: Animácie draka
V minulej lekcii, Unity (C #) Android: Healthbar 2 , kde sme sa zaoberali úpravou ukazovatele zdravia, aby vyzeral profesionálnejšie. V dnešnom dieli upravíme hráča. Zmeníme guľu na draka pridáme mu animáciu.
Video
Úprava PlayerMoveScript
V skripte pribudlo iba priradenie animátorom a zmena jeho atribútu.
using UnityEngine; using System.Collections; public class PlayerMoveScript : MonoBehaviour { float flapAmount = 10; public float speed = 150; bool android; bool started = false; Animator anim; // Use this for initialization void Start() { anim = GetComponent<Animator>(); if (Application.platform == RuntimePlatform.Android) android = true; else android = false; } // Update is called once per frame void Update () { if (!started) { if (!android) { if (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space)) { StartGame(); } } else { if (Input.touches.Length > 0) { StartGame(); } } return; } if(Input.GetKeyDown(KeyCode.Escape)) { Application.LoadLevel(0); } Vector3 vel = rigidbody2D.velocity; if (!android) { if (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space)) { vel = Flap(vel); } } else { if (Input.touches.Length > 0) { vel = Flap(vel); } } vel.x = speed * Time.deltaTime; rigidbody2D.velocity = vel; RotateMe(vel.y); } void StartGame() { started = true; rigidbody2D.gravityScale = 2.5f; Vector3 vel = rigidbody2D.velocity; vel = Flap(vel); rigidbody2D.velocity = vel; } void RotateMe(float y) { // -20, 10 // -70, 0 // 0 -70 if(y >= 0) { transform.rotation = Quaternion.Euler(0, 0, 0); } else { float angle = Mathf.Lerp(0, -70, -y); transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 0, angle), 0.05f); } } Vector3 Flap(Vector3 v) { anim.SetTrigger("DoFlap"); v.y = flapAmount; return v; } }
Ako hra vyzerá teraz?
Problémy?
Ak máte nejaké otázky, neváhajte sa opýtať v komentároch, alebo mi napísať do správ.
V budúcej lekcii, Unity (C #) Android - Asynchrónne načítanie scény , upravíme opäť hráča. Drak sa bude zafarbovať podľa svojho aktuálneho zdravia.
V budúcej lekcii, Unity (C #) Android - Asynchrónne načítanie scény , sa budeme zaoberať načítaním scény asynchrónnym spôsobom.