Lekce 3 - Unity (C#) Android: Generování stalagů
V minulé lekci, Unity (C#) Android: Pohyb, grafika, particles, jsme se zabývali hráčem. Dnešní tutoriál se zabývá mapou, její grafikou a generováním.
Video
Generování mapy
Přidávám skript, který je použit ve videu, pokud se vám ho nechce
opisovat Je to skript pro
generování levelu. Prozatím je to finální verze. Oproti předchozímu dílu
má hned několik úprav.
using UnityEngine; using System.Collections; public class StartScript : MonoBehaviour { public GameObject[] stalagPrefabs; public float distance = 10; public float offset = 10; public int count = 2; public float minHeight; public float maxHeight; public float minWidth; public float maxWidth; public Vector3 lastPos; void GenerateSet() { for (int i = 0; i < count; i++) { Vector2 pos = new Vector2(); pos.x = lastPos.x + (2*distance) + offset + i * distance; int r = Random.Range(0, 2); int rotateIndicator = 1; if (r == 0) { pos.y = 4.5f; } else { pos.y = -4.5f; rotateIndicator = -1; } GenerateStalag(pos, rotateIndicator); } } // Use this for initialization void Start () { lastPos = transform.position; //GenerateSet(); } void GenerateStalag(Vector2 p, int rotateInd) { GameObject g = Instantiate(stalagPrefabs[Random.Range(0, stalagPrefabs.Length)], p, Quaternion.identity) as GameObject; Vector3 theScale = g.transform.localScale; theScale.y = Random.Range(minHeight, maxHeight) * rotateInd; theScale.x = Random.Range(minWidth, maxWidth); g.transform.localScale = theScale; Bounds b = g.GetComponent<SpriteRenderer>().bounds; p.y -= b.size.y / 2 * rotateInd; g.transform.position = p; } void OnTriggerEnter2D(Collider2D col) { if(col.CompareTag("Player")) { GenerateSet(); lastPos = transform.position; lastPos.x += count * distance; transform.position = lastPos; } } }
Jak hra vypadá teď?

Problémy?
Pokud máte nějaké otázky ohledně nastavování, neváhejte se zeptat v komentářích, nebo mi napsat do zpráv.
V příští lekci, Unity (C#) Android: Generování stalagů 2, opravíme tvoření mapy.