Unity wdraża dźwięki kroków

W tym samouczku przyjrzymy się, jak zaimplementować dźwięki kroków w Unity za pomocą prostego przykładowego skryptu. Dźwięki kroków dodają realizmu i zanurzenia w grze, dostarczając dźwiękowej informacji zwrotnej na temat ruchów gracza. W tym artykule pokażemy przykład odtwarzania losowych dźwięków kroków z określoną częstotliwością, gdy gracz idzie. Omówimy niezbędną konfigurację, skrypty i mechanizmy wyzwalające, aby osiągnąć ten efekt. Zagłębmy się więc w grę i ożywijmy ją realistycznymi dźwiękami kroków!

Przygotuj zasoby dźwiękowe

  • Przygotuj zasoby dźwiękowe kroków (np. odgłosy chodzenia) w odpowiednim formacie audio (np. WAV lub MP3).
  • Zaimportuj zasoby dźwiękowe do projektu Unity.

Utwórz pusty obiekt gry

  • W edytorze Unity utwórz pusty obiekt gry, który będzie służył jako pojemnik na logikę dźwięków kroków. Nazwijmy to "FootstepManager."
  • Dołącz komponent 'AudioSource' do obiektu gry "FootstepManager". Komponent ten będzie odpowiedzialny za odtwarzanie dźwięków kroków.

Napisz scenariusz kroków

  • Utwórz nowy skrypt C# o nazwie "FootstepController" i dołącz go do obiektu gry "FootstepManager".
  • Otwórz skrypt "FootstepController" i wpisz następujący kod:

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;
    }
}

Przypisz dźwięki kroków

  • W edytorze Unity wybierz obiekt gry "FootstepManager".
  • W oknie Inspektora przypisz klipy dźwiękowe kroków do pola tablicowego "Footstep Sounds" skryptu "Footstep Controller". Przeciągnij i upuść zasoby dźwiękowe kroków do array slots.

Wyzwalaj dźwięki kroków

  • W skrypcie player Movement lub innym odpowiednim skrypcie uzyskaj dostęp do komponentu "FootstepController" i wywołaj metody 'StartWalking()' i 'StopWalking()' w oparciu o ruch gracza.
  • Na przykład, zakładając, że skrypt ruchu gracza nazywa się "PlayerMovement", zmodyfikuj go w następujący sposób:

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();
        }
    }
}

W powyższej implementacji dźwięki kroków będą odtwarzane w losowych odstępach czasu w określonym zakresie częstotliwości, gdy gracz będzie chodzić. Pamiętaj, aby dostosować zmienne 'minTimeBetweenFootsteps' i 'maxTimeBetweenFootsteps', aby kontrolować częstotliwość dźwięków kroków.

Upewnij się, że dołącz skrypt "PlayerMovement" do postaci gracza lub odpowiedniego obiektu gry i skonfiguruj ruch gracza tak, aby wyzwalał metody 'StartWalking()' i 'StopWalking()' w oparciu o chodzenie państwo.

Wniosek

Mamy nadzieję, że ten samouczek pomógł nauczyć się odtwarzać losowe dźwięki kroków z określoną częstotliwością, gdy gracz idzie. Pamiętaj o dostosowaniu skryptu i ustawień do wymagań, np. dostosowując minimalny i maksymalny czas pomiędzy dźwiękami kroków. Dźwięki kroków mogą znacznie zwiększyć zanurzenie gracza i ogólne wrażenia, dodając do gry dodatkową warstwę realizmu.

Sugerowane artykuły
Logika strzelania z pistoletu sygnałowego w Unity
Tworzenie GrabPack w Unity zainspirowany Poppy Playtime
Tworzenie efektu Bullet Time w Unity
Tworzenie obiektów interaktywnych w Unity
Implementowanie interakcji kinetycznych w Unity
Otwieranie szuflad i szafek za pomocą określonych kluczy w Unity
System pick and drop bez zapasów w Unity