wip : player breathing switch control

This commit is contained in:
Hugo Le Bolloc'h
2026-05-27 13:24:41 +02:00
parent 0399ad3ac9
commit 476fba022f
11 changed files with 183 additions and 419 deletions
@@ -24,8 +24,7 @@ public class Audio_AudioManager : MonoBehaviour
public AK.Wwise.Event PlayMusic;
public AK.Wwise.Event StopMusic;
[Header("Wwise Player Event")]
public AK.Wwise.Event PlayerBreath;
private void Awake()
{
@@ -40,7 +39,7 @@ public class Audio_AudioManager : MonoBehaviour
SetWwiseMusicState(WwiseMusicState.Sane);
PlayMusic.Post(gameObject);
PlayerBreath.Post(gameObject);
}
@@ -0,0 +1,13 @@
using UnityEngine;
public class Audio_BreathControl : MonoBehaviour
{
[SerializeField] private AK.Wwise.Event PlayerBreath;
private void Start()
{
PlayerBreath.Post(gameObject);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 84fb04a3132ab974e96cb88e98eb4d4e
@@ -0,0 +1,64 @@
using UnityEngine;
using System.Collections.Generic;
public enum TriggerCondition
{
Awake,
Start,
OnEnable,
OnDisable,
OnDestroy,
OnTriggerEnter,
OnTriggerExit,
OnTriggerStay,
OnCollisionEnter,
OnCollisionExit
}
public class Audio_SwitchTrigger : MonoBehaviour
{
[Header("Switch Settings")]
[SerializeField] private AK.Wwise.Switch wwiseSwitch;
[SerializeField] private GameObject switchTarget;
[Header("Trigger Settings")]
[SerializeField] private string filterTag = "Player";
[SerializeField] private List<TriggerCondition> conditions;
private void Awake() => TryFire(TriggerCondition.Awake);
private void Start() => TryFire(TriggerCondition.Start);
private void OnEnable() => TryFire(TriggerCondition.OnEnable);
private void OnDisable() => TryFire(TriggerCondition.OnDisable);
private void OnDestroy() => TryFire(TriggerCondition.OnDestroy);
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag(filterTag)) TryFire(TriggerCondition.OnTriggerEnter);
}
private void OnTriggerExit(Collider other)
{
if (other.CompareTag(filterTag)) TryFire(TriggerCondition.OnTriggerExit);
}
private void OnTriggerStay(Collider other)
{
if (other.CompareTag(filterTag)) TryFire(TriggerCondition.OnTriggerStay);
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag(filterTag)) TryFire(TriggerCondition.OnCollisionEnter);
}
private void OnCollisionExit(Collision collision)
{
if (collision.gameObject.CompareTag(filterTag)) TryFire(TriggerCondition.OnCollisionExit);
}
private void TryFire(TriggerCondition condition)
{
if (conditions.Contains(condition))
wwiseSwitch.SetValue(switchTarget);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 248105068f0589c40b0dfd7ca39a26e5