Crearea Minecraft pe Unity3D

Aceasta este a doua parte a ghidului pentru a crea propriul joc Minecraft-ca. In aceasta vom scrie generatorul lumii și se adaugă un caracter care se pot deplasa în întreaga lume, pentru a pune și elimina blocuri. În secțiunea anterioară am creat o textură cub.
Adăugați funcționalitatea mouse-ul
Înainte de a începe de programare, să adăugați la lumina noastră scenă direcțională. Avem nevoie de o sursă de lumină pentru a vedea mai bine noastră 3D lumea.

Puteți schimba direcția luminii, dacă doriți:

Poziționarea o sursă de lumină
Acum putem trece la scrierea primului nostru scenariu. Dorim să pună în aplicare funcționalitatea de a adăuga o nouă instanță a cubului în jurul părții pe care facem clic pe butonul din dreapta al mouse-ului, și a șterge o unitate existentă prin apăsarea tastei stânga. În fila Proiect, navigați la Codul director și de a crea două C # -script.

Adăugați în C # -script proiect
Noi le numim WorldGenerator și ClickOnFaceScript.

Înainte de a continua, este foarte recomandat să vă familiarizați cu programarea în unitate.
WorldGenerator.cs Acum deschise în MonoDevelop (care este deja instalat cu Unitatea) dublu-clic pe ea și introduceți următorul cod:
Noi folosim o metoda statica. pentru a crea o clona de cub nostru. Unitatea ne permite să specificați numele și poziția clona. Mai multe informații despre metoda instanțiați puteți obține aici.
Ca de Minecraft, dacă sunteți destul de aproape de cub și faceți clic pe butonul stâng al mouse-ului, dispare și apare în inventar. Când faceți clic pe butonul din dreapta al mouse-ului pe oricare dintre laturile cubului, o nouă instanță va fi pe partea pe care ați făcut clic pe, dacă aveți suficient material în inventar. In acest tutorial, nu ne-am stabilit limite, astfel încât vom avea o cantitate nesfârșită de cuburi și faceți clic distanță infinită.
ClickOnFaceScript.cs deschise și pentru a introduce acest cod:
Acum muta script-ul de pe fiecare din cele șase laturi ale cubului pe scenă.

Aplicați script-ul la GameObject
Script-ul trebuie să apară pe fiecare parte, în fila Inspector.

Să începem jocul. Apăsați și verificați dacă mesajele de depanare apar când faceți clic pe cubul în joc fila.

Testați presa al mouse-ului
Amintiți-vă. În modul de joc, orice modificări pe care le-ați făcut cu elementele din fila scenă. Acestea vor fi anulate. Nu schimba nimic până când jocul se execută. Apăsați din nou pentru a opri redarea.
Acum avem tot ce ai nevoie pentru a crea un nou cub, făcând clic pe butonul din dreapta al mouse-ului. Avem nevoie pentru a determina poziția exactă a noii GameObject. care va apărea când faceți clic. Pe scena noastră distanța dintre centrele a două blocuri vecine unul.
Pentru simplitate, vom apela centrul cubului pe care a făcut clic, litera C. și unitatea centrală, care ar trebui să apară - N. Considerăm că aceste centre ca poziție în 3D-spațiu.
Putem generaliza de mai sus într-o formulă simplă: N = C + delta, unde delta - această schimbare este necesar să se calculeze un nou centru al blocului. Fiecare dintre cele șase laturi ale copiei conține ClickOnFaceScript și diferite valori delta.
Trebuie să ne schimbăm ClickOnFaceScript.cs. să pună în aplicare funcționalitatea enumerate mai sus. Deschideți script-ul și modificați fișierul după cum urmează:

Toate informațiile necesare sunt prezentate
Verificați dacă totul funcționează. Începe jocul de mai multe ori, solicitând diferite poziții de cameră (prin schimbarea fila acestuia Transformă în Inspector) pentru a verifica că am introdus valori sunt corecte delta.

Configurarea poziția camerei și apăsați laturile cuburi
a crea un personaj
Dacă totul funcționează așa cum a fost planificat, putem trece la crearea de caracterul tău, astfel încât să ne putem mișca liber în jocul nostru. Din fericire pentru noi, Unitatea oferă un pachet complet cu controlerul caracterului în prima persoană, așa că nu trebuie să-l creați de la zero. Du-te la Active → Pachetul Import și selectați Controller caractere.

Import Controler pachet Caracter
În caseta Importingpackage, selectați următoarele:

În fila Proiect, du-te la activele Standard → Controlorii de caractere. First Person Controller.prefab selectați și trageți-l în fila Ierarhie.

Recoltarea First Person Controlor Caracter
Puneți-l aproape de centrul scenei.
Configurarea locației preforme
Trebuie să ne apărăm caracterul nostru de toamna înainte de a trece la testarea. Vom rambursa valoarea înapoi, atunci când vom termina algoritmul pentru lume.

Gravity nu este necesar!
Verificați dacă totul funcționează.

În prima persoană Controler pe scena noastră au aparat de fotografiat. atașat ca un copil GameObject. Când vom începe jocul, acest lucru va fi camera principală pe scenă, astfel încât să nu avem nevoie de o alta. Fiecare cameră conține component AudioListener. Acesta este motivul pentru care mesajul „Există 2 ascultători audio în scenă. Asigurați-vă că există întotdeauna exact un ascultător audio în scenă. „Apare în fila Console. Opriți obiectul principal Camera din fila Ierarhia.

Oprirea camerei principale
Suntem aproape gata! Deschideți WorldGenerator.cs script-ul și-l modificați:
Script-ul va fi rulat numai atunci când este atașat la unele GameObject pe scenă. Creați un gol WorldGenerator.cs GameObject gol și trageți pe ea.

WorldGenerator.cs Trageți un nou GameObject
Voxel trageți obiectul în câmpul corespunzător în script. Această versiune a algoritmului de generare mondială păstrează toate blocurile din memorie, deci nu este recomandat să se stabilească valori mari în câmpurile Dimensiune X. Size Y și Z. Dimensiuni altfel se confruntă cu o productivitate scăzută sau, chiar mai rău, unitatea poate zbura.
Dimensiunea a indicat că nu este necesar să se pună
Înainte de a vedea dezvoltarea noastră în acțiune, nu uitați să îmbunătățească câmpul gravitațional în script-ul atașat la controlerul de caractere.

Totuși, gravitația este importantă
Gata! Faceți clic și distrează-te!
