Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pjv:laboratoare:05 [2018/11/14 15:58]
alexandru.gradinaru
pjv:laboratoare:05 [2018/11/14 19:34] (current)
alexandru.gradinaru
Line 1: Line 1:
-===== Elemente de programare a jocurilor ​3D =====+===== Introducere in 3D =====
  
 ==== Controlul caracterelor in 3D ==== ==== Controlul caracterelor in 3D ====
Line 5: Line 5:
 Pentru miscarea si controlul caracterelor in 3D sunt posibile mai multe abordari. Pentru miscarea si controlul caracterelor in 3D sunt posibile mai multe abordari.
  
-=== Character Controller ​===+=== CharacterController ​===
  
-Character Controller ​este o componenenta ce poate fi adaugata pentru a putea controla caracaterul. Aceasta componenta nu foloseste elemente de fizica in nici nu fel, dar vine atasat cu un collider de baza ''​Capsule Collider''​ care nu permite intrarea in alte collidere. Acest lucru simplifica foarte mult scriptarea caracterului.+CharacterController ​este o componenenta ce poate fi adaugata pentru a putea controla caracaterul. Aceasta componenta nu foloseste elemente de fizica in nici nu fel, dar vine atasat cu un collider de baza ''​Capsule Collider''​ care nu permite intrarea in alte collidere. Acest lucru simplifica foarte mult scriptarea caracterului.
  
 Character Controller pune la dispozitie doua metode pentru miscarea caracterului: ​ Character Controller pune la dispozitie doua metode pentru miscarea caracterului: ​
Line 36: Line 36:
 </​code>​ </​code>​
  
-In cazul functiilor puse la dispozitie de Character Controller, miscarile sunt constranse de coliziuni in mod automatsi fiind destul de permisiva (spre exemplu va putea urca autmat rampe sau scari).+In cazul functiilor puse la dispozitie de Character Controller, miscarile sunt constranse de coliziuni in mod automat si este destul de permisiva (spre exemplu va putea urca autmat rampe sau scari).
  
 <​html>​ <​html>​
Line 91: Line 91:
 </​code>​ </​code>​
 Daca inputul nu este normalizat, caracterul se va misca cu o viteza mai mare atunci cand se misca in fi Daca inputul nu este normalizat, caracterul se va misca cu o viteza mai mare atunci cand se misca in fi
 +
 +
 +=== Rotatia camerei ===
 +
 +Pentru rotatia camerei exista mai multe variante, dar una dintre cele mai indiacate este sa retineti intotdeauna rotatia actuala a camerei, pentru a evita probleme legate de rotatii multiple compuse.
 +
 +O varianta simpla:
 +<​code>​
 +    private float yaw = 0.0f;
 +    private float pitch = 0.0f;
 +
 +    void Update () {
 +        yaw += speedH * Input.GetAxis("​Mouse X");
 +        pitch -= speedV * Input.GetAxis("​Mouse Y");
 +
 +        transform.eulerAngles = new Vector3(pitch,​ yaw, 0.0f);
 +    }
 +</​code>​
  
 ==== Raycasting ==== ==== Raycasting ====
Line 148: Line 166:
  
 Pentru reprezentarea healthbar-ului sau a altor elemente de tip bara, se poate folosi un element de UI (gameobject) de tip Slider, asa cum este reprezentat in imaginea de mai sus. Pentru reprezentarea healthbar-ului sau a altor elemente de tip bara, se poate folosi un element de UI (gameobject) de tip Slider, asa cum este reprezentat in imaginea de mai sus.
 +
 +<​code>​
 +GetComponent.<​Slider>​().value = myHealth;
 +</​code>​
  
 === Minimap === === Minimap ===
Line 163: Line 185:
 {{ :​pjv:​laboratoare:​minimap4.png?​direct&​350 |}} {{ :​pjv:​laboratoare:​minimap4.png?​direct&​350 |}}
  
-Rezultatul ​va fi +Rezultatul ​poate fi ibunatatit prin plasarea acestuia intr-un loc potrivit adaugarea unei masti sau a unei borduri si asa mai departe. 
 + 
 +{{ :​pjv:​laboratoare:​minimap7.png?​direct&​750 |}}
  
 ==== Crearea de animatii pentru obiecte 3D ==== ==== Crearea de animatii pentru obiecte 3D ====
Line 201: Line 225:
 </​code>​ </​code>​
  
-<​hidden>​ +==== Cerinte ====
-(vezi demo UI de la 3dpub) +
-  - coliziuni, proiectile +
-  - interfata grafica pt un fps +
-  - Managing weapons, Navmeshes, navmesh Agents, AI Auto-Attack +
-  - animatie caractere atac, arma, coliziuni atac +
-</​hidden>​ +
  
-<​hidden>​ +Realizarea unui joc 3D fps
-===== Elemente de programare a jocurilor ​3D ===== +
-- animatii cu blend tree+
  
 +  - Configurati scene pentru rulare 3D
 +  - Adaugati in scena un caracter FPS: o arma, un crosshair si camera plasata pentru a da impresia unui caracter (puteti lua resurse din asset store sau alte locuri: [[pjv:​resurse|]])
 +  - Caracterul se va putea controla de la tastatura si mouse. Folositi RigidBody sau CharacterController pentru control
 +  - Caracterul va avea o bara de viata
 +  - Arma 
 +      - va avea o mica animatie de miscare/​rotatie la Fire
 +      - va avea mai multe moduri de tragere, de ex: rifle (continuu) sau snipe (o data la apasarea de buton, cu damage mai mare)
 +  - Adaugati unul sau mai multi inamici in scena scriptati astfel incat:
 +      - sa aiba viata
 +      - la plasarea tintei(crosshair) pe acesta sa apara un healthbar
 +      - la actiunea de Fire a armei acesta va fi aruncat un pic inapoi si va pierde din viata
 +  - Adaugati un minimap
  
-</​hidden>​ 
pjv/laboratoare/05.1542203891.txt.gz · Last modified: 2018/11/14 15:58 by alexandru.gradinaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0