Unity implementerer fodtrinslyde

I denne tutorial vil vi undersøge, hvordan man implementerer fodtrinslyde i Unity ved hjælp af et simpelt eksempelscript. Fodtrinslyde tilføjer realisme og fordybelse til spillet ved at give lydfeedback til spillerens bevægelser. Denne artikel viser et eksempel på, hvordan man spiller tilfældige fodtrinslyde ved en bestemt frekvens, når afspilleren går. Vi vil dække den nødvendige opsætning, scripting og udløsningsmekanismer for at opnå denne effekt. Så lad os dykke ned og bringe liv til spillet med realistiske fodtrinslyde!

Forbered The Sound Assets

  • Forbered fodtrinslydaktiverne (f.eks. ganglyde) i et passende lydformat (f.eks. WAV eller MP3).
  • Importer lydaktiverne til Unity-projektet.

Opret et tomt spilobjekt

  • I Unity Editoren skal du oprette et tomt spilobjekt, der vil tjene som en beholder for fodtrinslydslogikken. Lad os navngive det "FootstepManager."
  • Vedhæft en 'AudioSource' komponent til "FootstepManager" spilobjektet. Denne komponent vil være ansvarlig for at spille fodtrinslydene.

Skriv Footstep Scriptet

  • Opret et nyt C# script kaldet "FootstepController" og vedhæft det til "FootstepManager" spilobjektet.
  • Åbn "FootstepController" scriptet og skriv følgende kode:

FootstepController.cs

using UnityEngine;

public class FootstepController : MonoBehaviour
{
    public AudioClip[] footstepSounds; // Array to hold footstep sound clips
    public float minTimeBetweenFootsteps = 0.3f; // Minimum time between footstep sounds
    public float maxTimeBetweenFootsteps = 0.6f; // Maximum time between footstep sounds

    private AudioSource audioSource; // Reference to the Audio Source component
    private bool isWalking = false; // Flag to track if the player is walking
    private float timeSinceLastFootstep; // Time since the last footstep sound

    private void Awake()
    {
        audioSource = GetComponent<AudioSource>(); // Get the Audio Source component
    }

    private void Update()
    {
        // Check if the player is walking
        if (isWalking)
        {
            // Check if enough time has passed to play the next footstep sound
            if (Time.time - timeSinceLastFootstep >= Random.Range(minTimeBetweenFootsteps, maxTimeBetweenFootsteps))
            {
                // Play a random footstep sound from the array
                AudioClip footstepSound = footstepSounds[Random.Range(0, footstepSounds.Length)];
                audioSource.PlayOneShot(footstepSound);

                timeSinceLastFootstep = Time.time; // Update the time since the last footstep sound
            }
        }
    }

    // Call this method when the player starts walking
    public void StartWalking()
    {
        isWalking = true;
    }

    // Call this method when the player stops walking
    public void StopWalking()
    {
        isWalking = false;
    }
}

Tildel fodtrinslyde

  • I Unity Editor, vælg "FootstepManager" spilobjektet.
  • I Inspector-vinduet tildeler du fodtrinslydklippene til "Footstep Sounds"-arrayfeltet i "Footstep Controller"-scriptet. Træk og slip fodtrinslyden ind i array-pladserne.

Udløs fodtrinslyde

  • I spillerbevægelsen-scriptet eller ethvert andet relevant script, skal du få adgang til "FootstepController"-komponenten og kalde 'StartWalking()'- og 'StopWalking()'-metoderne baseret på spillerens bevægelse.
  • Hvis du for eksempel antager, at spillerens bevægelsesscript hedder "PlayerMovement", skal du ændre det som følger:

PlayerMovement.cs

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    private FootstepController footstepController;

    private void Awake()
    {
        footstepController = GetComponentInChildren<FootstepController>(); // Get the FootstepController component
    }

    private void Update()
    {
        // Player movement code here

        // Check if the player is walking or not and call the appropriate methods
        if (isWalking)
        {
            footstepController.StartWalking();
        }
        else
        {
            footstepController.StopWalking();
        }
    }
}

Med implementeringen ovenfor vil fodtrinslydene afspilles med tilfældige intervaller inden for det specificerede frekvensområde, når afspilleren går. Husk at justere 'minTimeBetweenFootsteps' og 'maxTimeBetweenFootsteps' variablerne for at kontrollere frekvensen af ​​fodtrinslyde.

Sørg for at vedhæfte "PlayerMovement"-scriptet til spillerkarakteren eller det relevante spilobjekt og konfigurer spillerens bevægelse til at udløse 'StartWalking()'- og 'StopWalking()'-metoderne baseret på gang stat.

Konklusion

Forhåbentlig har denne vejledning hjulpet med at lære, hvordan man spiller tilfældige fodtrinlyde med en bestemt frekvens, når spilleren går. Husk at tilpasse scriptet og indstillingerne, så de passer til kravene, såsom at justere minimums- og maksimumstiden mellem fodtrinslydene. Fodtrinslyde kan i høj grad forbedre spillerens fordybelse og overordnede oplevelse, hvilket tilføjer det ekstra lag af realisme til spillet.

Foreslåede artikler
Implementering af objektpooling i Unity
Oprettelse af en trafiksimulator i Unity
Implementering af teleportering i Unity
Interagere med objekter i Unity Game
Oprettelse af 2D Spikes i Unity
Flyt objekter med scroll-input i Unity
Opret en GrabPack i Unity Inspireret af Poppy Playtime