Audio: per-SoundEffect occlusion via Steam Audio + 3D flag refactor
- New occlusion opt-in on SoundEffect: spatialized instances get a SteamAudioSource with raycast occlusion + frequency-dependent transmission (walls muffle instead of hard-mute) - Replace SoundEffectDistanceRange asset indirection with an explicit _3d bool (user refactor); rolloff/distance now left to defaults - Hey.asset: occlusion enabled Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c25d0777c2
commit
706100e322
8 files changed
+21
-56
No files matched your search
@@ -7,7 +7,6 @@ namespace Prototype
|
||||
[CreateAssetMenu(menuName = "Prototype/Sound Effect")]
|
||||
public class SoundEffect : ScriptableObject
|
||||
{
|
||||
[SerializeField] SoundEffectDistanceRange distanceRange;
|
||||
[SerializeField] Vector2 volumeMultiplier = new(1, 1);
|
||||
[SerializeField] Vector2 pitch = new(.95f, 1.05f);
|
||||
|
||||
@@ -15,7 +14,10 @@ namespace Prototype
|
||||
public AudioMixerGroup audioMixerGroup;
|
||||
public float volumeMultiplierFactor = 1;
|
||||
[SerializeField] bool loop;
|
||||
[SerializeField] bool _3d;
|
||||
[SerializeField] bool spatialize;
|
||||
[Tooltip("Occlude/muffle the sound behind walls via Steam Audio. Requires spatialize and exported scene geometry.")]
|
||||
[SerializeField] bool occlusion;
|
||||
|
||||
[Header("Additional Settings")]
|
||||
[SerializeField, Range(0, 1)] float defaultVolume = .8f;
|
||||
@@ -35,8 +37,9 @@ namespace Prototype
|
||||
volumeMultiplier = Random.Range(volumeMultiplier.x, volumeMultiplier.y) * volumeMultiplierFactor,
|
||||
pitch = Random.Range(pitch.x, pitch.y),
|
||||
loop = loop,
|
||||
_3d = _3d,
|
||||
spatialize = spatialize,
|
||||
distanceRange = distanceRange ? distanceRange.range : null
|
||||
occlusion = occlusion
|
||||
};
|
||||
|
||||
#if UNITY_EDITOR
|
||||
|
||||
Reference in new issue
Block a user