Sådan laver du et kanonspil i Unity
At skabe et kanonspil i Unity er en fantastisk måde at lære det grundlæggende i spiludvikling. I denne tutorial vil vi skabe et simpelt spil, hvor spilleren kan sigte og skyde en kanon for at ramme mål. Vi dækker opsætning af projektet, oprettelse og styring af en kanon og tilføjelse af mål.
Trin 1: Opsætning af projektet
Først skal du åbne Unity og oprette et nyt 2D-projekt. Navngiv dit projekt "CannonGame". Når projektet er oprettet, vil du være i hovedvinduet for Unity editor.
Trin 2: Oprettelse af kanonen
Vi har brug for en visuel repræsentation af kanonen. Du kan oprette en simpel rektangelsprite, der fungerer som din kanon. At gøre dette:
- Højreklik i vinduet Hierarchy og vælg Create Empty. Navngiv den "Cannon".
- Højreklik på "Cannon" objektet og vælg 2D Object -> Sprite. Navngiv den "CannonSprite".
- I Inspector-vinduet skal du klikke på Sprite-feltet og vælge en sprite til din kanon.
Placer kanonen i bunden af skærmen ved at indstille dens position til (0, -4, 0) i Transform-komponenten.
Opret nu et script til at styre kanonen. Højreklik i mappen Assets, vælg Create -> C# Script, og navngiv det "CannonController". Dobbeltklik på scriptet for at åbne det i din kodeeditor.
// 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);
}
}
Trin 3: Oprettelse af kanonkuglen
Vi skal skabe en kanonkugle, som kanonen kan skyde. Sådan gør du:
- Højreklik i vinduet Hierarchy og vælg 2D Object -> Sprite. Navngiv den "Cannonball".
- I Inspector-vinduet skal du klikke på Sprite-feltet og vælge en sprite til din kanonkugle.
- Tilføj en Rigidbody2D-komponent til kanonkuglen ved at klikke på Add Component og vælge Rigidbody2D.
- Tilføj en CircleCollider2D-komponent til kanonkuglen ved at klikke på Tilføj komponent og vælge CircleCollider2D.
Træk derefter kanonkuglen fra Hierarchy til mappen Assets for at oprette en præfabrikat. Denne præfabrikation vil blive brugt af kanonen til at skyde kanonkugler.
I vinduet Inspector i CannonController-scriptet (vedhæftet Cannon-objektet), skal du indstille CannonballPrefab-feltet til kanonkuglepræfabrikatet.
Trin 4: Oprettelse af mål
Lad os tilføje nogle mål, som spilleren kan skyde på:
- Højreklik i vinduet Hierarchy og vælg 2D Object -> Sprite. Navngiv den "Target".
- I Inspector-vinduet skal du klikke på Sprite-feltet og vælge en sprite til dit mål.
- Tilføj en BoxCollider2D-komponent til målet ved at klikke på Add Component og vælge BoxCollider2D.
Dupliker målet ved at højreklikke på det og vælge Duplicate. Placer målene rundt om skærmen.
Trin 5: Håndtering af kollisioner
Vi er nødt til at håndtere, hvad der sker, når en kanonkugle rammer et mål. Opret et script kaldet "Target" for at administrere dette:
- Højreklik i mappen Assets, vælg Create -> C# Script, og navngiv det "Target".
- Dobbeltklik på scriptet for at åbne det i din kodeeditor.
// Target.cs
using UnityEngine;
public class Target : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Cannonball"))
{
Destroy(gameObject);
}
}
}
Vedhæft målscriptet til alle målobjekter. Sørg for, at dit kanonkuglepræfabrikat har tagget "Cannonball".
Konklusion
Ved at følge disse trin har du skabt et simpelt kanonspil i Unity. Du har lært, hvordan du opretter et projekt, opretter og kontrollerer en kanon og tilføjer mål. Dette projekt dækker grundlæggende spiludviklingskoncepter såsom oprettelse af objekter, brugerinput, fysik og kollisionsdetektion. Du kan forbedre dette spil yderligere ved at tilføje funktioner som scoring, niveauer og forskellige typer mål. God fornøjelse med at eksperimentere og lære mere om Unity!