Hoe te schilderen met deeltjessysteem in eenheid

Unity Engine, bekend om zijn diverse en dynamische toolset, biedt talloze manieren om meeslepende ervaringen te creëren. Hiervan valt het Particle System op als een veelzijdig hulpmiddel voor visuele effecten, van het simuleren van regen en rook tot het maken van ingewikkelde animaties. Een minder onderzocht gebruik van dit systeem is het schilderen binnen een Unity scène. Deze tutorial introduceert een innovatieve toepassing van het deeltjessysteem om de werking van het schilderen op oppervlakken in Unity te simuleren.

Vereisten

1. Het opzetten van de scène

  • Start Unity en maak een nieuw 3D-project (als dat nog niet is gebeurd)
  • Klik met de rechtermuisknop in het hiërarchievenster en selecteer 3D-object -> 'Plane'. Dit zal fungeren als canvas.
  • Pas de positie van het vlak aan naar (0, 0, 0) voor consistentie.

2. Het deeltjessysteem creëren

  • Klik met de rechtermuisknop in het hiërarchievenster en selecteer 'Effects' -> 'Particle System'.
  • Hernoem het deeltjessysteem naar "ParticlePainter".
  • Plaats het object "ParticlePainter" iets boven het vlak.

3. Deeltjessysteem configureren voor verven

  • Terwijl het object "ParticlePainter" is geselecteerd, navigeert u naar het infovenster.

Breng onder 'Particle System' de volgende wijzigingen aan:

  • 'Duration': 1
  • 'Start Lifetime': 'Infinity' (dit zorgt ervoor dat deeltjes niet doodgaan)
  • 'Start Speed': 0 (deeltjes mogen niet bewegen)
  • 'Emission' -> 'Rate over Time': 100 (aanpassen volgens voorkeur voor schilderdichtheid)
  • Ga naar 'Shape' en selecteer "Circle". Pas de straal aan naar een kleinere waarde om de penseelgrootte te bepalen.
  • Wijzig onder 'Renderer' het materiaal in een aangepast materiaal of een aangepaste kleur om de verf weer te geven.

4. Scripting van de Paint Mechanic

Nu zal een script worden toegevoegd om te bepalen wanneer en waar de deeltjes worden uitgezonden.

  • Klik met de rechtermuisknop in het Assets-venster, selecteer 'Create' -> 'C# Script' en noem deze "ParticlePainterScript".
  • Dubbelklik op het script om het in een editor te openen, plak de onderstaande code erin en sla het script op:
using UnityEngine;

public class ParticlePainterScript : MonoBehaviour
{
    private ParticleSystem painterParticles;
    private bool canPaint = false;

    void Start()
    {
        painterParticles = GetComponent<ParticleSystem>();
    }

    void Update()
    {
        PaintMechanic();
    }

    void PaintMechanic()
    {
        if (Input.GetMouseButton(0))
        {
            if (!canPaint) 
            {
                painterParticles.Play();
                canPaint = true;
            }
        }
        else
        {
            painterParticles.Stop();
            canPaint = false;
        }

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        
        if (Physics.Raycast(ray, out hit))
        {
            transform.position = hit.point;
        }
    }
}
  • Koppel de "ParticlePainterScript" aan het "ParticlePainter" object in de Unity editor.

5. Camera aanpassen

Pas de hoofdcamera aan voor een bovenaanzicht:

  • Stel de Positie in op (0, 10, 0) en Rotatie op (90, 0, 0).

6. Test de scène

  • Klik op de knop Afspelen.
  • Houd de linkermuisknop ingedrukt en beweeg de cursor over het vlak. Er moeten deeltjes worden uitgestoten, waardoor een verfachtig effect ontstaat.

Vragen:

  1. Waarom het Particle System gebruiken voor schilderen in plaats van traditionele textuurverfmethoden? : Het Particle System biedt dynamische realtime feedback, is zeer aanpasbaar en kan unieke visuele effecten bieden. Bovendien kan het in sommige situaties prestatievriendelijker zijn, vooral bij tijdelijke verfeffecten.
  2. Kunnen met deze methode meerdere kleuren worden geverfd?: Ja, door meerdere deeltjessystemen te creëren of de deeltjeskleur in de loop van de tijd aan te passen, kunnen verschillende kleureffecten worden bereikt.
  3. Hoe kan de penseelgrootte dynamisch worden gewijzigd? : Door de 'radius' waarde van de vorm van het deeltjessysteem in realtime aan te passen via scripting, kan de penseelgrootte dynamisch worden gevarieerd.

Conclusie

Aan het einde van deze tutorial is een nieuwe en unieke toepassing van het Unity deeltjessysteem onderzocht. Of het nu gaat om spelmechanismen, artistieke hulpmiddelen of innovatieve ervaringen, Unity blijft verrassen met zijn veelzijdige mogelijkheden.

Voorgestelde artikelen
Hoe je lichte koekjes in eenheid maakt
Hoe je een horrorspel in eenheid maakt
Essentiële nabewerkingstips voor eenheid
De kracht van tijdelijke texturen voor prototypen in eenheid
Onmisbare uitbreidingen om het niveauontwerp in eenheid te verbeteren
Creëer een hogedrukreinigerschuimeffect in eenheid
Deeltjeseffecten in eenheid implementeren