11. díl - Unity (C#) Android: Oprava sekání, naklánění

C# .NET Unity 3D Unity (C#) Android: Oprava sekání, naklánění

Unicorn College ONEbit hosting Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci, Unity (C#) Android: Start, Skóre, PlayerPrefs, jsem se zabýval lehkou optimalizací, přičítáním skóre a zastavením hráče na začátku.

Video

Úprava Player Move Scriptu

Do tohoto skriptu přibyla rotace hráče.

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;
    }

}

Vyřešení sekání, ú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);
    }
}

Jak hra vypadá teď?

Problémy?

Pokud máte nějaké otázky, neváhejte se zeptat v komentářích, nebo mi napsat do zpráv.

V příští lekci, Unity (C#) Android: Healthbar 1, naprogramujeme základní healthbar s textem.


 

 

Článek pro vás napsal vratislavino
Avatar
Jak se ti líbí článek?
2 hlasů
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 (3)

 

 

Komentáře

Avatar
Sanxo Fireman:9. června 10:31

žiaľ nejde zvukový komentár :-(

edit: ospravedlňujem sa, ide, ale ticho.

Editováno 9. června 10:33
 
Odpovědět 9. června 10:31
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.