Office week Slevový týden - Květen
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
30 % bodů zdarma na online výuku díky naší Slevové akci!

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

Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!

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: Zafarbenie draka podľa zdravie , upravíme opäť hráča. Drak sa bude zafarbovať podľa svojho aktuálneho zdravia.


 

 

Článok pre vás napísal vratislavino
Avatar
Ako sa ti páči článok?
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje programování v C#, především pak ve vývojovém prostředí Unity3D. Má asi pětileté zkušenosti s programováním a momentálně pracuje na připravované hře Azulgar: Beyond The Frontiers.
Predchádzajúci článok
Unity (C #) Android: Healthbar 2
Všetky články v sekcii
Tvorba 2D arkády pre Android v Unity
Miniatúra
Nasledujúci článok
Unity (C #) Android: Zafarbenie draka podľa zdravie
Aktivity (1)

 

 

Komentáre

Avatar
Sanxo Fireman:28.6.2017 10:42

Ahoj, podľa tutoriálu som si vytvoril animáciu gameobjektu. Ten som potom duplikoval pomocou Instantiate. Ako postupovať, aby som mohol animáciu ovládať nad každým objektom samostatne?

Slavo.

 
Odpovedať
28.6.2017 10:42
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 1 správy z 1.