Jump to content
Unity Insider Forum

Sound abspielen - nur in bestimmten Positionen hörbar


asmodii

Recommended Posts

Hi,

 

ein seltsames Problem habe ich da. Ein Skript, was beim Zusammentreffen zweier Collider (is trigger) einen Sound abspielen soll arbeitet zwar, aber ich kann den Sound nur hören, wenn ich in einer bestimmten Position zum Objekt stehe. Mir ist nicht ganz klar wieso. Wo ist der Fehler?

 

public var clip : AudioClip;

   function OnTriggerEnter(col : Collider)
   {
 audio.PlayClipAtPoint(clip, transform.position);
   }

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm... will irgendwie nicht wirklich. Scheint aber mit dem 3D-Sound zusammenzuhängen.

wenn du in deine scene schaust und das objekt das den sound abspielt selektiert hast ist darum eine "kugel" die definiert den hörbereich

Dafür brauch ich ja ein Audio Source wo ich das Soundfile drin habe. Habe ich aber nicht. Das Skript hat ja schon das Soundfile drin. Bei einem funktioniert es ja auch. Erstelle ich einen zweiten oder kopiere den ersten, dann geht´s nicht mehr. Die sind dann tatsächlich positionsabhängig. Verstehe ich nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

audio.PlayClipAtPoint(clip, transform.position)

 

bedeutet, dass der Clip einmalig an der Position des Gameobjects gespielt wird, an dem das Script hängt. Und wenn es sich um einen 3D Sound handelt, dann kann man ihn nur in einer bestimmten Reichweite hören.

 

Das Problem, weshalb ich PlayClipAtPoint selbst nicht verwende, ist, dass man zuwenig Kontrolle über den Sound hat. Ausser der Lautstärke kann man keine weiteren Parameter übergeben.

 

Da nicht alle Soundfiles gleich laut sind, kann es evtl sein, dass dein Sound ohne Lautstärkeparameter zu leise gespielt wird und deswegen kaum bzw nicht weit genug hörbar ist.

 

Versuch mal:

 

audio.PlayClipAtPoint(clip, transform.position, lautstaerke);

 

Und experimentier mit verschiedenen Werten bei lautstaerke. Vielleicht bringt das was

Link zu diesem Kommentar
Auf anderen Seiten teilen

Derzeit sieht das Skript jetzt so aus:

public var clip : AudioClip;
public var volume: float = 0.95;

   function OnTriggerEnter(col : Collider)
   {
 audio.PlayClipAtPoint(clip, transform.position, volume);
   }

Das Problem ist immer noch das Selbe. Bin sowieso nicht der Skripter, aber das hier bringt mich an den Rand des Irrsins. Warum funktioniert das beim einen, aber beim anderen nicht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab mal bei 3D das Häkchen weggemacht. Beim Objekt das ohnehin schon ging höre ich nichts mehr, wenn ich davon wegdrehe. Soll das so? Hätte erwartet, dass es ganz einfach, egal wo man steht und sich dreht gleich laut ist.

 

Beim andern Objekt, was nur auf einer bestimmten Position geht hat sich nichts geändert. Gleicher Sound testweise bei beiden verwenden wohl gemerkt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier mal ein kurzes Video. Wie man sieht geht es beim Schmied wie es soll. Auch, wenn ich komplett ums Haus renne geht es. Wird leiser bei Abstand und lauter, wenn man ran geht. Alles so wie es gehört. Dann flip ich rüber zum Lumberjack und bei ihm hört man die Sounds nur noch in bestimmten Positionen und dann mal nur beim Drehen der Kamera oder beim Laufen. Auffällig ist, dass es nach VORNE und seitlich geht, aber nicht, wenn ich hinter ihm stehe.

 

http://www.youtube.com/watch?v=K4va4Kwlw9w&feature=youtu.be

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kopiere ich den Schmied, dann passiert mit der Kopie exakt das Selbe wie mit dem Lumberjack. Verschiebe ich den Schmied an die Stelle des Lumberjacks, dann funktioniert er dort ganz normal. Hatte mal alle Soundquelle rausgeworfen zum Test. Hat auch nichts gebracht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...