Een eenvoudige 2D-platformgame maken in Unity
In deze tutorial maken we een basis 2D platformer in Unity. Dit houdt in dat we een spelerpersonage maken dat kan bewegen, springen en interacteren met platforms. We voegen ook wat basis game-elementen toe, zoals obstakels en verzamelobjecten.
1. Het project opzetten
Laten we beginnen met het opzetten van een nieuw Unity 2D-project:
- Open Unity en maak een nieuw 2D-project.
- Ga naar Bestand > Nieuwe scène en selecteer 2D-modus.
- Sla de scène op als MainScene.
2. Het spelerpersonage creëren
We maken eerst een eenvoudig spelerpersonage met behulp van een sprite en voegen bewegingsfunctionaliteit toe:
- Klik met de rechtermuisknop in het venster Hierarchy en selecteer Create Empty. Noem dit object Player.
- Voeg een Sprite Renderer-component toe aan het Player-object door op Component toevoegen te klikken in de Inspector.
- Selecteer een sprite die u als personage wilt gebruiken. Dit kunt u doen door er zelf een te maken of door een 2D-element te importeren uit de Unity Asset Store.
- Voeg een Rigidbody2D en een BoxCollider2D toe aan het Player-object voor fysica en botsingsdetectie.
3. Het script voor de spelersbeweging schrijven
Laten we nu een script schrijven om de speler te laten bewegen en springen. Volg deze stappen:
- Klik met de rechtermuisknop in het Project-venster en kies Create > C# Script. Noem het PlayerController.
- Koppel dit script aan het Player-object door het vanuit het Project-venster naar de Player in de Hiërarchie te slepen.
Vervang de inhoud van het script door het volgende:
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 7f;
private Rigidbody2D rb;
private bool isGrounded = true;
void Start()
{
rb = GetComponent();
}
void Update()
{
// Player movement
float moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);
// Jumping
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
isGrounded = false;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
// Check if player is touching the ground
if (collision.collider.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
4. Platformen en omgevingen creëren
Nu gaan we platforms creëren waar de speler op kan springen:
- Klik met de rechtermuisknop in de hiërarchie en selecteer Lege maken. Geef het de naam Platform.
- Voeg een BoxCollider2D en Sprite Renderer toe aan het platform.
- Selecteer een sprite voor het platform (bijvoorbeeld een platte rechthoek).
- Dupliceer het platform door op Ctrl+D te drukken (of Cmd+D op een Mac) en positioneer de kopieën om een level te maken.
- Markeer deze objecten als Ground in de Inspector voor de spronglogica van de speler.
5. Obstakels toevoegen
Om het spel uitdagender te maken, voegen we een aantal obstakels toe:
- Maak een ander leeg GameObject en noem het Obstacle.
- Voeg een BoxCollider2D en Sprite Renderer toe aan dit object.
- Kies een sprite voor het obstakel (bijvoorbeeld een punt of gevaar).
- Met de OnCollisionEnter2D-methode van de speler kun je botsingen met obstakels detecteren en het spel opnieuw starten of levenspunten aftrekken.
6. Verzamelobjecten toevoegen
We kunnen ook verzamelobjecten toevoegen, zoals munten of power-ups:
- Maak een ander leeg GameObject en noem het Collectible.
- Voeg een CircleCollider2D toe (stel deze in als trigger) en een Sprite Renderer om het verzamelobject weer te geven.
- Schrijf een eenvoudig script om te detecteren wanneer de speler een item verzamelt:
using UnityEngine;
public class Collectible : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
// Add points or other effects here
Destroy(gameObject); // Remove the collectible from the scene
}
}
}
7. Het spel testen en aanpassen
Nu de basismechanismen op hun plaats zitten, kun je het spel testen door op de Play-knop te drukken. Probeer het volgende aan te passen:
- Wijzig de waarden moveSpeed en jumpForce om aan te passen hoe snel de speler beweegt en springt.
- Dupliceer platforms en obstakels om verschillende levels te creëren.
- Voeg achtergrondelementen of decoraties toe om het spel visueel aantrekkelijk te maken.
8. Verbetering van de platformgame
Om je platformgame naar een hoger niveau te tillen, kun je het volgende overwegen:
- Animaties voor de speler, zoals loop- en springanimaties.
- Geluidseffecten bij het springen, verzamelen van voorwerpen en het raken van obstakels.
- Een camera die de bewegingen van de speler volgt voor een dynamischer beeld van het spel.
Conclusie
Met deze eenvoudige 2D-platformeropstelling heb je nu een basisspelstructuur die kan worden uitgebreid met meer functies, levels en verfijning. Experimenteer met verschillende mechanismen en creëer je eigen unieke platformer.