This shows you the differences between two versions of the page.
pjv:laboratoare:05 [2018/11/14 16:24] 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 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 220: | Line 242: | ||
- Adaugati un minimap | - Adaugati un minimap | ||
- | <hidden> | ||
- | (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> | ||
- | ===== Elemente de programare a jocurilor 3D ===== | ||
- | - animatii cu blend tree | ||
- | |||
- | |||
- | </hidden> |