Cum să faci un joc cu tun în Unity
Crearea unui joc cu tun în Unity este o modalitate excelentă de a învăța elementele de bază ale dezvoltării jocului. În acest tutorial, vom crea un joc simplu în care jucătorul poate ținti și trage cu un tun pentru a lovi ținte. Vom acoperi configurarea proiectului, crearea și controlul unui tun și adăugarea țintelor.
Pasul 1: Configurarea proiectului
Mai întâi, deschideți Unity și creați un nou proiect 2D. Denumiți-vă proiectul "CannonGame". Odată ce proiectul este creat, veți fi în fereastra principală a editorului Unity.
Pasul 2: Crearea tunului
Avem nevoie de o reprezentare vizuală a tunului. Puteți crea un sprite dreptunghi simplu care să acționeze ca tunul dvs. Pentru a face acest lucru:
- Faceți clic dreapta în fereastra Hierarchy și selectați Create Empty. Numiți-l "Cannon".
- Faceți clic dreapta pe obiectul "Cannon" și selectați 2D Object -> Sprite. Numiți-l "CannonSprite".
- În fereastra Inspector, dați clic pe câmpul Sprite și selectați un sprite pentru tunul dvs.
Poziționați tunul în partea de jos a ecranului setându-i poziția la (0, -4, 0) în componenta Transform.
Acum, creați un script pentru a controla tunul. Faceți clic dreapta în folderul Assets, selectați Create -> C# Script și denumește-l "CannonController". Faceți dublu clic pe script pentru a-l deschide în editorul de cod.
// CannonController.cs
using UnityEngine;
public class CannonController : MonoBehaviour
{
public GameObject cannonballPrefab;
public float shootForce = 700f;
void Update()
{
Aim();
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Aim()
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
transform.up = direction;
}
void Shoot()
{
GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
Rigidbody2D rb = cannonball.GetComponent();
rb.AddForce(transform.up * shootForce);
}
}
Pasul 3: Crearea ghiulei
Trebuie să creăm o minge de tun pentru ca tunul să tragă. Iată cum:
- Faceți clic dreapta în fereastra Hierarchy și selectați 2D Object -> Sprite. Numiți-l "Cannonball".
- În fereastra Inspector, dați clic pe câmpul Sprite și selectați un sprite pentru ghiulele dvs.
- Adăugați o componentă Rigidbody2D la ghiulea făcând clic pe Add Component și selectând Rigidbody2D.
- Adăugați o componentă CircleCollider2D la ghiulea făcând clic pe Add Component și selectând CircleCollider2D.
Apoi, trageți ghiulele din Ierarhia în folderul Assets pentru a crea un prefabricat. Acest prefabricat va fi folosit de tun pentru a trage ghiulele.
În fereastra Inspector a scriptului CannonController (atașat obiectului Cannon), setați câmpul CannonballPrefab la prefabricatul cannonball.
Pasul 4: Crearea țintelor
Să adăugăm câteva ținte în care jucătorul să tragă:
- Faceți clic dreapta în fereastra Hierarchy și selectați 2D Object -> Sprite. Numiți-l "Target".
- În fereastra Inspector, dați clic pe câmpul Sprite și selectați un sprite pentru ținta dvs.
- Adăugați o componentă BoxCollider2D la țintă făcând clic pe Add Component și selectând BoxCollider2D.
Duplicați ținta făcând clic dreapta pe ea și selectând Duplicate. Poziționați țintele în jurul ecranului.
Pasul 5: Gestionarea coliziunilor
Trebuie să ne ocupăm de ceea ce se întâmplă atunci când o ghiulea lovește o țintă. Creați un script numit "Target" pentru a gestiona acest lucru:
- Faceți clic dreapta în folderul Assets, selectați Create -> C# Script și denumește-l "Target".
- Faceți dublu clic pe script pentru a-l deschide în editorul de cod.
// Target.cs
using UnityEngine;
public class Target : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Cannonball"))
{
Destroy(gameObject);
}
}
}
Atașați scriptul țintă la toate obiectele țintă. Asigurați-vă că prefabricatul dvs. de ghiulea are eticheta "Cannonball".
Concluzie
Urmând acești pași, ați creat un joc de tun simplu în Unity. Ați învățat cum să configurați un proiect, să creați și să controlați un tun și să adăugați ținte. Acest proiect acoperă concepte de bază de dezvoltare a jocului, cum ar fi crearea de obiecte, introducerea utilizatorului, fizica și detectarea coliziunilor. Puteți îmbunătăți și mai mult acest joc adăugând funcții precum scor, niveluri și diferite tipuri de ținte. Distrează-te experimentând și învățând mai multe despre Unity!