NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

Lekce 8 - Unity (C#) Android: MenuPart, Eraser, pozadí 2

V minulé lekci, Unity (C#) Android: MenuPart, Eraser, pozadí, jsem nasbíral nějaké resty, které jsou v tomto videu řešeny.

Konkrétně se jedná o ničení stalagů a následné vytváření efektu ničení, vytvoření 2 zkušebních levelů do módu arcade a přepínání mezi nimi.

Video

Skript pro ukončení hry

Tento skript reaguje na průlet hráče koncovým objektem levelu

using UnityEngine;
using System.Collections;

public class EndScript : MonoBehaviour {

    bool isEnd = false;

    void OnTriggerEnter2D(Collider2D col)
    {
        if(col.CompareTag("Player"))
        {
            isEnd = true;
            Time.timeScale = 0;
        }
    }

    void OnGUI()
    {
        if(isEnd)
        {
            if(GUILayout.Button("Menu"))
            {
                Time.timeScale = 1;
                Application.LoadLevel("menu_1");
            }

            if (GUILayout.Button("Next level"))
            {

                Time.timeScale = 1;
                string currLevelId = Application.loadedLevelName;
                currLevelId = Application.loadedLevelName.Substring(currLevelId.Length - 1);

                print("Aktualni level: " + currLevelId);

                int currLevelInt = int.Parse(currLevelId);
                currLevelInt++;

                string newLevelName = "Level0" + currLevelInt;

                Application.LoadLevel(newLevelName);

            }

            if (GUILayout.Button("Restart"))
            {

                Time.timeScale = 1;
                Application.LoadLevel(Application.loadedLevelName);
            }

        }
    }

}

Detekce hráčovy kolize

using UnityEngine;
using System.Collections;

public class PlayerCollisionScript : MonoBehaviour {

    void OnCollisionEnter2D(Collision2D col)
    {
        if(col.collider.CompareTag("Stalag"))
        {
            GameObject stalag = col.collider.gameObject;
            stalag.SendMessage("React");
        }
    }

}

Reakce stalagu na hráčovu kolizi

using UnityEngine;
using System.Collections;

public class StalagScript : MonoBehaviour {

    public GameObject parts;

    void React()
    {
        print("destroyed");

        Destroy(Instantiate(parts, transform.position, Quaternion.identity), 2);



        Destroy(gameObject);
    }

}

Jak hra vypadá teď?

Zdrojákoviště Unity - 2D hry

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: Přestavba, nová grafika, vrstvy, přidáme novou grafiku a předěláme vrstvy a kolize.


 

Předchozí článek
Unity (C#) Android: MenuPart, Eraser, pozadí
Všechny články v sekci
Zdrojákoviště Unity - 2D hry
Přeskočit článek
(nedoporučujeme)
Unity (C#) Android: Přestavba, nová grafika, vrstvy
Článek pro vás napsal vratislavino
Avatar
Uživatelské hodnocení:
3 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