Sound In Code: Difference between revisions
Jump to navigation
Jump to search
HogynMelyn (talk | contribs) (Extension to example of EmitSound function to show how to get the position override parameter to actually affect the position) |
HogynMelyn (talk | contribs) m (Extra clarification to EmitAmbientSound to show that sounds produced via this method are unspatialised) |
||
Line 11: | Line 11: | ||
== Play sounds anywhere == | == Play sounds anywhere == | ||
To play a sound on the client, use the following code: | To play a sound on the client and without spatialisation (i.e. as an "ambient" sound), use the following code: | ||
<source lang="cpp">enginesound->EmitAmbientSound( "link/to/soundfile", 1.0f );</source> | <source lang="cpp">enginesound->EmitAmbientSound( "link/to/soundfile", 1.0f );</source> |
Revision as of 04:04, 23 September 2021
Emit sound from entity
Use EmitSound
to emit a sound from a base entity:
EmitSound( "soundscript.file" );
The sound will follow whichever entity it is assigned to, based on the entity index provided to EmitSound
. If an entity index is provided, the provided position overload will not affect the position of the sound; to override this behaviour and have the sound play at the desired point in space, pass in -1 as the entity index:
EmitSound( filter, -1, "Weapon_ProxyBomb.LeadIn", &soundPosition );
See the CSoundEmitterSystem
class in SoundEmitterSystem.cpp for overloads and implementation details.
Play sounds anywhere
To play a sound on the client and without spatialisation (i.e. as an "ambient" sound), use the following code:
enginesound->EmitAmbientSound( "link/to/soundfile", 1.0f );
You may need to include #include "engine/ienginesound.h"
in order to get access to the interface.
Play sounds via VGUI interface
#include "vgui/ISurface.h"
#include "vgui_controls/Controls.h"
using namespace vgui;
surface()->PlaySound( "common/talk.wav" ); // Starts from the 'sound' folder