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.