Hur man gör ett kanonspel i Unity
Att skapa ett kanonspel i Unity är ett bra sätt att lära sig grunderna i spelutveckling. I den här handledningen kommer vi att skapa ett enkelt spel där spelaren kan sikta och skjuta en kanon för att träffa mål. Vi kommer att täcka inställningen av projektet, skapa och kontrollera en kanon och lägga till mål.
Steg 1: Konfigurera projektet
Öppna först Unity och skapa ett nytt 2D-projekt. Ge ditt projekt ett namn "CannonGame". När projektet har skapats kommer du att vara i Unity huvudredigeringsfönstret.
Steg 2: Skapa kanonen
Vi behöver en visuell representation av kanonen. Du kan skapa en enkel rektangelsprite som fungerar som din kanon. Att göra detta:
- Högerklicka i Hierarchy-fönstret och välj Create Empty. Döp det till "Cannon".
- Högerklicka på "Cannon"-objektet och välj 2D Object -> Sprite. Döp det till "CannonSprite".
- I Inspector-fönstret, klicka på Sprite-fältet och välj en sprite för din kanon.
Placera kanonen längst ner på skärmen genom att ställa in dess position till (0, -4, 0) i Transform-komponenten.
Skapa nu ett skript för att styra kanonen. Högerklicka i mappen Assets, välj Create -> C# Script och namnge det "CannonController". Dubbelklicka på skriptet för att öppna det i din kodredigerare.
// 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);
}
}
Steg 3: Skapa kanonkulan
Vi måste skapa en kanonkula så att kanonen kan skjuta. Här är hur:
- Högerklicka i Hierarchy-fönstret och välj 2D Object -> Sprite. Döp det till "Cannonball".
- I Inspector-fönstret, klicka på Sprite-fältet och välj en sprite för din kanonkula.
- Lägg till en Rigidbody2D-komponent till kanonkulan genom att klicka på Lägg till komponent och välja Rigidbody2D.
- Lägg till en CircleCollider2D-komponent till kanonkulan genom att klicka på Lägg till komponent och välja CircleCollider2D.
Dra sedan kanonkulan från Hierarchy till mappen Assets för att skapa en prefab. Denna prefab kommer att användas av kanonen för att skjuta kanonkulor.
I fönstret Inspector i CannonController-skriptet (fäst till Cannon-objektet), ställ in CannonballPrefab-fältet till kanonkulans prefab.
Steg 4: Skapa mål
Låt oss lägga till några mål som spelaren kan skjuta på:
- Högerklicka i Hierarchy-fönstret och välj 2D Object -> Sprite. Döp det "Target".
- I Inspector-fönstret, klicka på Sprite-fältet och välj en sprite för ditt mål.
- Lägg till en BoxCollider2D-komponent till målet genom att klicka på Lägg till komponent och välja BoxCollider2D.
Duplicera målet genom att högerklicka på det och välja Duplicera. Placera målen runt skärmen.
Steg 5: Hantera kollisioner
Vi måste hantera vad som händer när en kanonkula träffar ett mål. Skapa ett skript som heter "Target" för att hantera detta:
- Högerklicka i mappen Assets, välj Create -> C# Script och namnge det "Target".
- Dubbelklicka på skriptet för att öppna det i din kodredigerare.
// Target.cs
using UnityEngine;
public class Target : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Cannonball"))
{
Destroy(gameObject);
}
}
}
Bifoga målskriptet till alla målobjekt. Se till att din kanonkula prefab har taggen "Cannonball".
Slutsats
Genom att följa dessa steg har du skapat ett enkelt kanonspel i Unity. Du har lärt dig hur du skapar ett projekt, skapar och kontrollerar en kanon och lägger till mål. Detta projekt täcker grundläggande spelutvecklingskoncept som objektskapande, användarinmatning, fysik och kollisionsdetektering. Du kan förbättra det här spelet ytterligare genom att lägga till funktioner som poängsättning, nivåer och olika typer av mål. Ha kul med att experimentera och lära dig mer om Unity!