Unity
Feladat UFO Landing 3D Repülő csészealjat irányítunk (ami a tengelye körül pörög) Épületeket, robbanó objektumokat ki kell kerülni Jelenet közepén lévő piros gömbre kell leszállni Bal-jobb-előre-hátra x-z síkban mozgat Space felfele ható erő
Feladat Véletlen pálya Kis körben robbanó objektumok Nagy körben véletlen magasságú háztömbök
Feladat Ufo méretén nem változtattam Robbanót 3X-osan nagyítottam Kis kör: 5-40 egység Nagy kör: 40-70 egység
Feladat A pályának vannak határai, nem mehetünk ki belőle, nem szállhatunk túl magasra sem
Fealdat Ha a piros gömböt megszerezzük, újraindul a pálya, de épületből és robbanóból is kétszer annyi lesz Ha épületnek, robbanónak, talajnak megyünk nagy sebességgel, vagy a pálya szélén kimegyünk, újraindul a pálya (változatlan akadályszámmal)
Új projekt
A Unity felülete
Hierarchia panel I.
Inspector nézet
Projekt panel
Asset Import Másoljuk be a modellünket az asset könyvtárba Megjelent az Asset-ek között:
Szkript létrehozása Dupla Klikk
Alap Script using UnityEngine; using System.Collections; public class LevelGenerator : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { Indításkor hívódik Minden képkocka számításakor hívódik
Szkript gondolatok Egy szkriptet több objektumhoz is hozzácsatolhatunk, új komponenspéldány jön hozzá létre A szkriptek publikus adattagja megjelennek a GUI-n (lehet alap típus, de GameObject típusú is …) Az általunk írt osztályok egy névtérben vannak, látják egymást (static)
Prefabok Több azonos példány Ha a prefab válozik, a példányok is Asset-eknél lehet üres prefabot létrehozni A hierarchia nézetből húzzhatjuk az elkészült objektumot (teljes hierarchiáját) a prefab-ra az Asset nézetbe Ha a prefabot húzhatjuk később a jelenetbe, vagy lehet szkriptből példányosítani)
Fontos osztályok, függvények Vector2D (x,y,magnitude,Normalize()) Vector3D (x,y,z,magnitude,Normalize()) Random (value, Range(min,max), insideUnitCircle Mathf (sin …) Time (.time, .deltaTime) GameObject (Instantiate(), GetComponent<>()) MonoBehaviour (gameObject, transform, …) Input (GetAxis()) Transform (position, Rotate(), Translate(), …)
Fontos osztályok, függvények RigidBody (AddForce(Vector3, mode)) Pályabetöltés: using UnityEngine.SceneManagement; SceneManager.LoadScene(0); Fizikai események (MonoBehaviour függv) void OnCollisionEnter(Collision other) void OnTriggerEnter(Collider other) Példányosítás
Jó munkát!!!