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í

Tento videotutoriál navazuje na předchozí díl o programování her pro Android v Unity, kde 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.


 

  Aktivity (1)

Článek pro vás napsal vratislavino
Avatar
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.

Jak se ti líbí článek?
Celkem (2 hlasů) :
4444 4


 



 

 

Komentáře

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.

Zatím nikdo nevložil komentář - buď první!