Kursinhalt
Kampfspiel in Unity
Kampfspiel in Unity
Sounds Für Das Spiel
Audio Listener
Der Audio Listener
ist eine Komponente in Unity, die als Ohren des Spiels fungiert. Sie wird typischerweise an der Hauptkamera oder der Spielfigur angebracht und nimmt alle Audiosignale in der Szene auf. Es sollte nur einen Audio Listener
pro Szene geben.
Funktion: Er empfängt alle Audioquellen und bestimmt, was der Spieler hört, einschließlich 3D-Raumklang, sodass der Spieler Richtung und Entfernung von Geräuschen wahrnehmen kann.
Hintergrundmusik mit Audio Source
Die Komponente Audio Source
wird verwendet, um Audioclips in Unity abzuspielen. Sie kann an jedes GameObject
angehängt werden, beispielsweise an ein spezielles Objekt für Hintergrundmusik oder an Objekte in der Szene, die Soundeffekte ausgeben.
Funktion: Die Audio Source
spielt Audioclips ab und kann über verschiedene Parameter gesteuert und konfiguriert werden.
Hauptparameter der Audio Source-Komponente
AudioClip: Die Audiodatei, die von dieser Audio Source
abgespielt wird.
Output: Die Audio Mixer Group
, durch die diese Audioquelle ihr Audio ausgibt. Wenn keine angegeben ist, wird die Standard-Audioausgabe verwendet.
Mute: Wenn aktiviert, wird die Audioquelle stummgeschaltet und gibt keinen Ton wieder.
Bypass Effects: Umgeht alle auf diese Audioquelle angewendeten Effekte, sodass der Ton ohne Audioeffekte abgespielt wird.
Bypass Listener Effects: Ignoriert Effekte, die auf den Audio Listener
angewendet werden.
Bypass Reverb Zones: Verhindert, dass die Audioquelle von Nachhallzonen in der Szene beeinflusst wird.
Play On Awake: Wenn aktiviert, beginnt die Audioquelle mit dem Abspielen des zugewiesenen Audioclips, sobald die Szene startet.
Loop: Wenn aktiviert, wird der Audioclip in einer Schleife wiederholt, bis er gestoppt wird.
Priority: Bestimmt die Priorität der Audioquelle. Niedrigere Werte bedeuten höhere Priorität, was nützlich ist, wenn viele Audioquellen gleichzeitig abgespielt werden.
Volume: Steuert die Lautstärke der Audioquelle. Beispiel: 0.263 bedeutet, dass der Ton mit etwa 26 % der ursprünglichen Lautstärke abgespielt wird.
Pitch: Passt die Tonhöhe des Audioclips an. Der Standardwert ist 1. Niedrigere Werte verlangsamen und vertiefen den Ton, höhere Werte beschleunigen und erhöhen die Tonhöhe.
Stereo Pan: Steuert die Stereopositionierung des Tons. Ein Wert von -1 verschiebt den Ton vollständig nach links, 1 vollständig nach rechts und 0 zentriert den Ton.
Spatial Blend: Bestimmt das Verhältnis zwischen 2D- und 3D-Audio. Ein Wert von 0 macht den Ton vollständig 2D (nicht von der Position des Listeners beeinflusst), während 1 ihn vollständig 3D macht (von der Position des Listeners beeinflusst).
Reverb Zone Mix: Passt den Anteil der Audioquelle an, der in die Nachhallzonen der Szene gemischt wird. Der Standardwert ist 1.
Zusammenfassung
Audio Listener: Erfasst alle Audiosignale in der Szene und ist typischerweise an der Hauptkamera angebracht;
Audio Source: Spielt Audioclips ab und kann mit verschiedenen Parametern konfiguriert werden, um die Wiedergabe und Wahrnehmung des Tons zu steuern;
Hauptparameter: Umfassen AudioClip, Output, Mute, Bypass Effects, Play On Awake, Loop, Priority, Volume, Pitch, Stereo Pan, Spatial Blend und Reverb Zone Mix.
Diese Komponenten arbeiten zusammen, um das Audioerlebnis in Unity zu verwalten und zu steuern und bieten so eine immersive und dynamische Klangumgebung für Spiele.
Abspielen des Angriffssounds
private void Update()
{
if (isAttacking)
{
RaycastHit2D rayCastHit = Physics2D.Raycast(transform.position, Vector2.right * transform.localScale.x, range, enemyLayer);
if (rayCastHit)
{
if(rayCastHit.transform.TryGetComponent(out IGetAttacked getAttacked))
{
// Play attack sound
attackAudioSource.Play();
// Apply damage to the enemy
getAttacked.GetAttacked(damage);
// Play attack effect
attackEffect.transform.position = rayCastHit.point;
attackEffect.Play();
// Stop attacking
isAttacking = false;
}
}
}
}
Erklärung zur Verwendung von AudioSource
Raycast-Erkennung: Ein Raycast wird verwendet, um zu erkennen, ob der Angriff des Spielers einen Gegner trifft. Der Raycast wird von der Position des Spielers in die Richtung, in die er blickt, mit einer durch attackRange
definierten Reichweite ausgeführt.
Trefferüberprüfung: Wenn der Raycast ein Objekt innerhalb des enemyLayer
trifft, prüft das Skript, ob das getroffene Objekt das Interface IGetAttacked
implementiert.
Abspielen des Angriffssounds: Wenn ein Treffer erkannt wird und der Gegner angegriffen werden kann (Interface IGetAttacked
ist implementiert), wird der Angriffssound abgespielt: attackAudioSource.Play()
.
Zusammenfassung
In der Klasse PlayerAttack
spielt AudioSource
einen Soundeffekt ab, wenn der Spieler erfolgreich einen Gegner angreift. Dies wird durch attackAudioSource.Play()
in der Update
-Methode nach einem Raycast-Treffer ausgelöst. Dadurch erhält der Spieler sofortiges akustisches Feedback, was die Immersion im Spiel erhöht.
Danke für Ihr Feedback!