chore : change footsteps detection from tag to custom comp

This commit is contained in:
Hugo Le Bolloc'h
2026-03-28 19:34:15 +01:00
parent 9f6eb731c4
commit 5c01b640df
9 changed files with 99 additions and 85 deletions
@@ -131,7 +131,6 @@ GameObject:
- component: {fileID: 245714137} - component: {fileID: 245714137}
- component: {fileID: 245714136} - component: {fileID: 245714136}
- component: {fileID: 245714135} - component: {fileID: 245714135}
- component: {fileID: 245714139}
m_Layer: 0 m_Layer: 0
m_Name: Plane (1) m_Name: Plane (1)
m_TagString: carpet m_TagString: carpet
@@ -233,24 +232,6 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &245714139
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 245714134}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 380f7cbe5adf62244a5281fc7f50fe87, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Audio_SurfaceMaterial
_material:
idInternal: 0
valueGuidInternal: []
groupIdInternal: 0
groupGuidInternal: []
WwiseObjectReference: {fileID: 11400000, guid: cba7dd3dc6dddc744b665136cf09f95f, type: 2}
--- !u!1001 &621599144 --- !u!1001 &621599144
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -431,14 +412,14 @@ MonoBehaviour:
m_GameObject: {fileID: 661203441} m_GameObject: {fileID: 661203441}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 380f7cbe5adf62244a5281fc7f50fe87, type: 3} m_Script: {fileID: 11500000, guid: 3ec78f9fa08450a4fb1c6ef69da4e22c, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Audio_SurfaceMaterial m_EditorClassIdentifier: Assembly-CSharp::Audio_SoundSurface
_material: wwiseSwitch:
idInternal: 0 idInternal: 0
valueGuidInternal: [] valueGuidInternal:
groupIdInternal: 0 groupIdInternal: 0
groupGuidInternal: [] groupGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: 90b25d313fd10fe4bb34ce68d987f60e, type: 2} WwiseObjectReference: {fileID: 11400000, guid: 90b25d313fd10fe4bb34ce68d987f60e, type: 2}
--- !u!1 &935580408 stripped --- !u!1 &935580408 stripped
GameObject: GameObject:
@@ -461,38 +442,16 @@ MonoBehaviour:
idInternal: 0 idInternal: 0
valueGuidInternal: valueGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: 41aa8cbccefacf24b97ee9067316b3dc, type: 2} WwiseObjectReference: {fileID: 11400000, guid: 41aa8cbccefacf24b97ee9067316b3dc, type: 2}
surfaces:
- tag: stone
wwiseSwitch:
idInternal: 0
valueGuidInternal:
groupIdInternal: 0
groupGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: cea23ef8af49aa54f9c3833465570bb2, type: 2}
- tag: wood
wwiseSwitch:
idInternal: 0
valueGuidInternal:
groupIdInternal: 0
groupGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: 90b25d313fd10fe4bb34ce68d987f60e, type: 2}
- tag: carpet
wwiseSwitch:
idInternal: 0
valueGuidInternal:
groupIdInternal: 0
groupGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: cba7dd3dc6dddc744b665136cf09f95f, type: 2}
defaultSwitch: defaultSwitch:
idInternal: 0 idInternal: 0
valueGuidInternal: valueGuidInternal:
groupIdInternal: 0 groupIdInternal: 0
groupGuidInternal: groupGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: cea23ef8af49aa54f9c3833465570bb2, type: 2} WwiseObjectReference: {fileID: 11400000, guid: cea23ef8af49aa54f9c3833465570bb2, type: 2}
stepInterval: 0.5 _stepInterval: 0.5
minVelocity: 0.4 _minVelocity: 0.3
rayDistance: 0.2 _rayDistance: 0.2
groundLayer: _groundLayer:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
--- !u!1 &1391553828 --- !u!1 &1391553828
@@ -675,15 +634,15 @@ MonoBehaviour:
m_GameObject: {fileID: 1586552165} m_GameObject: {fileID: 1586552165}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 380f7cbe5adf62244a5281fc7f50fe87, type: 3} m_Script: {fileID: 11500000, guid: 3ec78f9fa08450a4fb1c6ef69da4e22c, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Audio_SurfaceMaterial m_EditorClassIdentifier: Assembly-CSharp::Audio_SoundSurface
_material: wwiseSwitch:
idInternal: 0 idInternal: 0
valueGuidInternal: [] valueGuidInternal:
groupIdInternal: 0 groupIdInternal: 0
groupGuidInternal: [] groupGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: 90b25d313fd10fe4bb34ce68d987f60e, type: 2} WwiseObjectReference: {fileID: 11400000, guid: cba7dd3dc6dddc744b665136cf09f95f, type: 2}
--- !u!1 &1758314271 --- !u!1 &1758314271
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -807,14 +766,14 @@ MonoBehaviour:
m_GameObject: {fileID: 1758314271} m_GameObject: {fileID: 1758314271}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 380f7cbe5adf62244a5281fc7f50fe87, type: 3} m_Script: {fileID: 11500000, guid: 3ec78f9fa08450a4fb1c6ef69da4e22c, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Audio_SurfaceMaterial m_EditorClassIdentifier: Assembly-CSharp::Audio_SoundSurface
_material: wwiseSwitch:
idInternal: 0 idInternal: 0
valueGuidInternal: [] valueGuidInternal:
groupIdInternal: 0 groupIdInternal: 0
groupGuidInternal: [] groupGuidInternal:
WwiseObjectReference: {fileID: 11400000, guid: cea23ef8af49aa54f9c3833465570bb2, type: 2} WwiseObjectReference: {fileID: 11400000, guid: cea23ef8af49aa54f9c3833465570bb2, type: 2}
--- !u!1001 &1930280930 --- !u!1001 &1930280930
PrefabInstance: PrefabInstance:
@@ -1517,6 +1476,63 @@ MonoBehaviour:
eventIdInternal: 0 eventIdInternal: 0
valueGuidInternal: valueGuidInternal:
m_callbackDataInternal: {fileID: 0} m_callbackDataInternal: {fileID: 0}
--- !u!1001 &1671855845641723936
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalPosition.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4395560298612109037, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6521978618824486866, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
propertyPath: m_Name
value: AudioManager
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 61f7fe4128138164295ef34aae4f6659, type: 3}
--- !u!1660057539 &9223372036854775807 --- !u!1660057539 &9223372036854775807
SceneRoots: SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1530,3 +1546,4 @@ SceneRoots:
- {fileID: 245714138} - {fileID: 245714138}
- {fileID: 1586552169} - {fileID: 1586552169}
- {fileID: 661203445} - {fileID: 661203445}
- {fileID: 1671855845641723936}
@@ -16,7 +16,7 @@ public class Audio_FootstepsController : MonoBehaviour
public AK.Wwise.Event footstepEvent; public AK.Wwise.Event footstepEvent;
[Header("Surface Configuration")] [Header("Surface Configuration")]
public List<SurfaceMapping> surfaces = new List<SurfaceMapping>();
public AK.Wwise.Switch defaultSwitch; public AK.Wwise.Switch defaultSwitch;
[Header("Movement Settings")] [Header("Movement Settings")]
@@ -27,22 +27,11 @@ public class Audio_FootstepsController : MonoBehaviour
private CharacterController _controller; private CharacterController _controller;
private float _timer; private float _timer;
private Dictionary<string, AK.Wwise.Switch> _surfaceCache;
void Awake() void Awake()
{ {
_controller = GetComponent<CharacterController>(); _controller = GetComponent<CharacterController>();
_surfaceCache = new Dictionary<string, AK.Wwise.Switch>();
foreach (var mapping in surfaces)
{
if (!string.IsNullOrEmpty(mapping.tag))
{
_surfaceCache[mapping.tag.ToLower()] = mapping.wwiseSwitch;
}
}
} }
void Update() void Update()
@@ -67,20 +56,19 @@ public class Audio_FootstepsController : MonoBehaviour
RaycastHit hit; RaycastHit hit;
if (Physics.Raycast(transform.position + Vector3.up * 0.1f, Vector3.down, out hit, _rayDistance, _groundLayer)) if (Physics.Raycast(transform.position + Vector3.up * 0.1f, Vector3.down, out hit, _rayDistance, _groundLayer))
{ {
string currentTag = hit.collider.tag.ToLower();
if (hit.collider.TryGetComponent<Audio_SoundSurface>(out var surface))
if (_surfaceCache.TryGetValue(currentTag, out AK.Wwise.Switch targetSwitch))
{ {
targetSwitch.SetValue(gameObject); surface.wwiseSwitch.SetValue(gameObject);
// Debug.Log($"[Footsteps] Switch Wwise set on : {currentTag}");
} }
else else
{ {
defaultSwitch.SetValue(gameObject); defaultSwitch.SetValue(gameObject);
Debug.LogWarning($"[Footsteps] Tag '{currentTag}' inconnu. Utilisation du switch par défaut."); Debug.LogWarning($"[Footsteps] No GroundSurface component on '{hit.collider.name}'. Utilisation du switch par défaut.");
} }
footstepEvent.Post(gameObject); footstepEvent.Post(gameObject);
} }
} }
@@ -0,0 +1,7 @@
using UnityEngine;
using AK.Wwise;
public class Audio_SoundSurface : MonoBehaviour
{
public AK.Wwise.Switch wwiseSwitch;
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3ec78f9fa08450a4fb1c6ef69da4e22c
@@ -15,4 +15,4 @@ MonoBehaviour:
objectName: inStaircase objectName: inStaircase
id: 3708394339 id: 3708394339
guid: 5EE95D9E-014E-4A9E-880A-F1EEF0FE8D8C guid: 5EE95D9E-014E-4A9E-880A-F1EEF0FE8D8C
WwiseStateGroupReference: {fileID: 0} WwiseStateGroupReference: {fileID: 11400000, guid: ea33e74510b6ef84bbdde2121f209e13, type: 2}
@@ -15,4 +15,4 @@ MonoBehaviour:
objectName: inMenu objectName: inMenu
id: 3374585465 id: 3374585465
guid: 8952F29F-BE73-473A-9D08-8294D37259E7 guid: 8952F29F-BE73-473A-9D08-8294D37259E7
WwiseStateGroupReference: {fileID: 0} WwiseStateGroupReference: {fileID: 11400000, guid: ea33e74510b6ef84bbdde2121f209e13, type: 2}
@@ -15,4 +15,4 @@ MonoBehaviour:
objectName: None objectName: None
id: 748895195 id: 748895195
guid: AA82CE06-EC15-4AB6-A59B-BEDE7C5926C7 guid: AA82CE06-EC15-4AB6-A59B-BEDE7C5926C7
WwiseStateGroupReference: {fileID: 0} WwiseStateGroupReference: {fileID: 11400000, guid: ea33e74510b6ef84bbdde2121f209e13, type: 2}
@@ -15,4 +15,4 @@ MonoBehaviour:
objectName: inSane objectName: inSane
id: 3719846035 id: 3719846035
guid: D325E2E9-6F95-4BA9-AF05-2C2E653106FA guid: D325E2E9-6F95-4BA9-AF05-2C2E653106FA
WwiseStateGroupReference: {fileID: 0} WwiseStateGroupReference: {fileID: 11400000, guid: ea33e74510b6ef84bbdde2121f209e13, type: 2}
@@ -15,4 +15,4 @@ MonoBehaviour:
objectName: inMad objectName: inMad
id: 1174700730 id: 1174700730
guid: DD04671B-E8B5-4B1A-986A-579728855F92 guid: DD04671B-E8B5-4B1A-986A-579728855F92
WwiseStateGroupReference: {fileID: 0} WwiseStateGroupReference: {fileID: 11400000, guid: ea33e74510b6ef84bbdde2121f209e13, type: 2}