Unity implementerer fottrinnlyder

I denne opplæringen vil vi utforske hvordan du implementerer fottrinnlyder i Unity ved å bruke et enkelt eksempelskript. Skrittlyder gir realisme og fordypning til spillet ved å gi lydtilbakemelding til spillerens bevegelser. Denne artikkelen vil vise et eksempel på hvordan du spiller tilfeldige fottrinnlyder med en viss frekvens når spilleren går. Vi vil dekke nødvendige oppsett, skripting og utløsningsmekanismer for å oppnå denne effekten. Så la oss dykke inn og gi liv til spillet med realistiske fottrinnlyder!

Forbered The Sound Assets

  • Forbered fottrinnlydselementene (f.eks. ganglyder) i et passende lydformat (f.eks. WAV eller MP3).
  • Importer lydelementene til Unity-prosjektet.

Lag et tomt spillobjekt

  • I Unity Editor, lag et tomt spillobjekt som vil tjene som en beholder for fottrinnslydlogikken. La oss gi det et navn "FootstepManager."
  • Fest en 'AudioSource'-komponent til "FootstepManager"-spillobjektet. Denne komponenten vil være ansvarlig for å spille av fottrinnlydene.

Skriv The Footstep Script

  • Lag et nytt C#-skript kalt "FootstepController" og fest det til "FootstepManager"-spillobjektet.
  • Åpne "FootstepController"-skriptet 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;
    }
}

Tilordne fottrinnlyder

  • I Unity Editor, velg "FootstepManager" spillobjektet.
  • I Inspector-vinduet tilordner du fottrinnlydklippene til "Footstep Sounds"-arrayfeltet til "Footstep Controller"-skriptet. Dra og slipp fottrinnlydelementene inn i array-sporene.

Trigger fottrinnlyder

  • I spillerbevegelsen-skriptet eller et annet relevant skript, få tilgang til "FootstepController"-komponenten og kall 'StartWalking()'- og 'StopWalking()'-metodene basert på spillerbevegelse.
  • For eksempel, forutsatt at spillerens bevegelsesskript heter "PlayerMovement", endre 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 fottrinnlydene spille med tilfeldige intervaller innenfor det angitte frekvensområdet når spilleren går. Husk å justere variablene 'minTimeBetweenFootsteps' og 'maxTimeBetweenFootsteps' for å kontrollere frekvensen av fottrinnlyder.

Sørg for å feste "PlayerMovement"-skriptet til spillerkarakteren eller det relevante spillobjektet og konfigurer spillerens bevegelse til å utløse 'StartWalking()'- og 'StopWalking()'-metodene basert på gange stat.

Konklusjon

Forhåpentligvis har denne opplæringen bidratt til å lære å spille tilfeldige fottrinnlyder med en bestemt frekvens når spilleren går. Husk å tilpasse skriptet og innstillingene for å passe kravene, for eksempel å justere minimums- og maksimumstiden mellom fottrinnlydene. Skrittlyder kan i stor grad forbedre spillerens innlevelse og generelle opplevelse, og legge til det ekstra laget av realisme til spillet.

Foreslåtte artikler
Implementering av objektpooling i Unity
Opprette en trafikksimulator i Unity
Skaper kamerarysteeffekt i enhet
Implementering av teleportering i Unity
Samhandle med objekter i Unity Game
Lage 2D Spikes i Unity
Flytt objekter med rulleinngang i Unity