Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

15. diel - Unity (C #) Android: Oprava sekanie, nakláňanie

V minulej lekcii, Unity (C #) Android - Animácie draka , sme upravili hráča a vytvorili pre draka animácie.

V minulej lekcii, Unity (C #) Android - Animácie draka , som sa zaoberal ľahkou optimalizáciou, pričítaním skóre a zastavením hráča na začiatku.

Video

Úprava Player Move Script

Do tohto skriptu pribudla rotácie hráčov.

using UnityEngine;
using System.Collections;

public class PlayerMoveScript : MonoBehaviour {

    float flapAmount = 10;
    public float speed = 150;

    bool android;

    // Use this for initialization
    void Start()
    {
        if (Application.platform == RuntimePlatform.Android)
            android = true;
        else
            android = false;
    }

    // Update is called once per frame
    void Update () {

        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 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)
    {
        v.y = flapAmount;
        return v;
    }

}

Vyriešenie sekanie, úprava CameraFollowPlayer

using UnityEngine;
using System.Collections;

public class CameraFollowPlayer : MonoBehaviour {


    public Transform observingObject;
    public bool withOffset;
    public int offset;

    void Update()
    {
        if (observingObject == null)
            return;

        Vector3 pos = transform.position;
        Vector3 newPos = observingObject.position;

        if (withOffset)
            newPos.x += offset;

        newPos.z = pos.z;
        newPos.y = pos.y;

        transform.position = Vector3.Lerp(transform.position, newPos, 1f);
    }
}

Ako hra vyzerá teraz?

Tvorba 2D arkády pre Android v Unity

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: Healthbar 1 , naprogramujeme základné healthbar s textom.


 

Predchádzajúci článok
Unity (C #) Android - Animácie draka
Všetky články v sekcii
Tvorba 2D arkády pre Android v Unity
Preskočiť článok
(neodporúčame)
Unity (C #) Android: Healthbar 1
Článok pre vás napísal vratislavino
Avatar
Užívateľské hodnotenie:
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.
Aktivity