Jak stworzyć grę Cannon w Unity
Tworzenie gry armatniej w Unity to świetny sposób na poznanie podstaw tworzenia gier. W tym samouczku stworzymy prostą grę, w której gracz może celować i strzelać z armaty, aby trafiać w cele. Omówimy konfigurowanie projektu, tworzenie i kontrolowanie armaty oraz dodawanie celów.
Krok 1: Konfiguracja projektu
Najpierw otwórz Unity i utwórz nowy projekt 2D. Nazwij swój projekt "CannonGame". Po utworzeniu projektu znajdziesz się w głównym oknie edytora Unity.
Krok 2: Tworzenie armaty
Potrzebujemy wizualnej reprezentacji armaty. Możesz stworzyć prostego prostokątnego duszka, który będzie działał jak twoja armata. Aby to zrobić:
- Kliknij prawym przyciskiem myszy okno Hierarchy i wybierz Utwórz puste. Nazwij to "Cannon".
- Kliknij prawym przyciskiem myszy obiekt "Cannon" i wybierz Obiekt 2D -> Sprite. Nazwij to "CannonSprite".
- W oknie Inspector kliknij pole Sprite i wybierz duszka dla swojej armaty.
Ustaw działo na dole ekranu, ustawiając jego położenie na (0, -4, 0) w komponencie Transform.
Teraz utwórz skrypt sterujący armatą. Kliknij prawym przyciskiem myszy folder Assets, wybierz Utwórz -> C# Script i nadaj mu nazwę "CannonController". Kliknij dwukrotnie skrypt, aby otworzyć go w edytorze kodu.
// 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);
}
}
Krok 3: Tworzenie kuli armatniej
Musimy stworzyć kulę armatnią, aby armata mogła wystrzelić. Oto jak:
- Kliknij prawym przyciskiem myszy okno Hierarchy i wybierz Obiekt 2D -> Sprite. Nazwij to "Cannonball".
- W oknie Inspector kliknij pole Sprite i wybierz duszka dla swojej kuli armatniej.
- Dodaj komponent Rigidbody2D do kuli armatniej, klikając Add Component i wybierając Rigidbody2D.
- Dodaj komponent CircleCollider2D do kuli armatniej, klikając Add Component i wybierając CircleCollider2D.
Następnie przeciągnij kulę armatnią z Hierarchy do folderu Assets, aby utworzyć prefabrykat. Ten prefabrykat będzie używany przez armatę do strzelania kulami armatnimi.
W oknie Inspector skryptu CannonController (dołączonego do obiektu Cannon) ustaw pole CannonballPrefab na prefabrykat kuli armatniej.
Krok 4: Tworzenie celów
Dodajmy kilka celów, do których gracz będzie strzelał:
- Kliknij prawym przyciskiem myszy okno Hierarchy i wybierz Obiekt 2D -> Sprite. Nazwij to "Target".
- W oknie Inspector kliknij pole Sprite i wybierz duszka dla swojego celu.
- Dodaj komponent BoxCollider2D do celu, klikając Add Component i wybierając BoxCollider2D.
Zduplikuj cel, klikając go prawym przyciskiem myszy i wybierając Duplikuj. Rozmieść cele na ekranie.
Krok 5: Obsługa kolizji
Musimy sobie poradzić z tym, co się stanie, gdy kula armatnia trafi w cel. Utwórz skrypt o nazwie "Target", aby tym zarządzać:
- Kliknij prawym przyciskiem myszy folder Assets, wybierz Utwórz -> C# Script i nadaj mu nazwę "Target".
- Kliknij dwukrotnie skrypt, aby otworzyć go w edytorze kodu.
// Target.cs
using UnityEngine;
public class Target : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Cannonball"))
{
Destroy(gameObject);
}
}
}
Dołącz skrypt Target do wszystkich obiektów docelowych. Upewnij się, że prefabrykat kuli armatniej ma znacznik "Cannonball".
Wniosek
Wykonując poniższe kroki, stworzyłeś prostą grę armatnią w Unity. Nauczyłeś się, jak przygotować projekt, stworzyć armatę i sterować nią oraz dodawać cele. Projekt ten obejmuje podstawowe koncepcje tworzenia gier, takie jak tworzenie obiektów, wprowadzanie danych przez użytkownika, fizyka i wykrywanie kolizji. Możesz jeszcze bardziej ulepszyć tę grę, dodając funkcje takie jak punktacja, poziomy i różne typy celów. Miłej zabawy podczas eksperymentowania i zdobywania wiedzy o Unity!