8. diel - Unity (C #) Android: Generovanie Stalag 2
V minulej lekcii, Unity (C #) Android - MenuPart, Eraser a pozadia , sme pracovali na odstraňovaní už zdolaných prekážok a tiež na nekonečnom opakovaní pozadí. Pridali sme aj ďalšie herné menu.
V minulej lekcii, Unity (C #) Android - MenuPart, Eraser a pozadia , sme sa zaoberali tvorbou mapy. Dnešné tutoriál sa zaoberá opravou a úpravou mapy a jej generovaním.
Video
Generovanie mapy
Pridávam skript, ktorý je použitý vo videu, ak sa vám ho nechce opisovať Je to skript pre generovanie levelu. Zatiaľ je to finálna verzia. Oproti predchádzajúcemu dielu má hneď niekoľko ú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; } } }
Ako hra vyzerá teraz?
Problémy?
Ak máte nejaké otázky ohľadom nastavovania, neváhajte sa opýtať v komentároch, alebo mi napísať do správ.
Budúci lekcie, Unity (C #) Android: GUI - menu 1 , sa zaoberá vytváraním menu.