Added Music

This commit is contained in:
cblech
2025-01-05 18:00:57 +01:00
parent 24905179ce
commit 7bdc88d1f3
19 changed files with 1279 additions and 34 deletions
+87 -34
View File
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;
public class MusicManager : MonoBehaviour
{
@@ -8,8 +9,8 @@ public class MusicManager : MonoBehaviour
{
None,
Cozy,
Trash,
TrashPlusBuilding,
CozyPlusTrash,
Building,
TurnAround,
TurnAroundPlusJeremyLives,
FinaleBuildUp,
@@ -20,61 +21,113 @@ public class MusicManager : MonoBehaviour
[SerializeField]
private AudioSource _CozySource;
[FormerlySerializedAs("_TrashSource")]
[SerializeField]
private AudioSource _TrashSource;
private AudioSource _AdditiveTrashSource;
[FormerlySerializedAs("_AdditiveBuildingSource")]
[SerializeField]
private AudioSource _AdditiveBuildingSource;
private AudioSource _BuildingSource;
[SerializeField]
private AudioSource _TurnAroundSource;
[SerializeField]
private AudioSource _AdditiveJeremyLivesSource;
[SerializeField]
private AudioSource _FinaleBuildUpSource;
public void PlayMusic(Track track)
{
switch (track)
{
case Track.None:
break;
case Track.Cozy:
break;
case Track.Trash:
break;
case Track.TrashPlusBuilding:
break;
case Track.TurnAround:
break;
case Track.TurnAroundPlusJeremyLives:
break;
case Track.FinaleBuildUp:
break;
default:
throw new ArgumentOutOfRangeException(nameof(track), track, null);
}
currentTrack = track;
}
private void Update()
{
var fadeMultiplier = 0.2f;
if(currentTrack == Track.Cozy)
if (currentTrack is Track.CozyPlusTrash or Track.Cozy)
{
if (!_AdditiveTrashSource.isPlaying)
_AdditiveTrashSource.Play();
if(!_CozySource.isPlaying)
_CozySource.Play();
_CozySource.volume = Mathf.Clamp(_CozySource.volume + (fadeMultiplier * Time.deltaTime),0,1);
}
else
{
_CozySource.volume = Mathf.Clamp(_CozySource.volume - (fadeMultiplier * Time.deltaTime),0,1);
if(_CozySource.volume == 0 && _CozySource.isPlaying)
if (_AdditiveTrashSource.volume == 0 && _AdditiveTrashSource.isPlaying)
_AdditiveTrashSource.Stop();
if (_CozySource.volume == 0 && _CozySource.isPlaying)
_CozySource.Stop();
}
_AdditiveTrashSource.volume = currentTrack == Track.CozyPlusTrash ?
Mathf.Clamp(_AdditiveTrashSource.volume + (fadeMultiplier * Time.deltaTime), 0, 1) :
Mathf.Clamp(_AdditiveTrashSource.volume - (fadeMultiplier * Time.deltaTime), 0, 1);
_CozySource.volume = currentTrack is Track.CozyPlusTrash or Track.Cozy ?
Mathf.Clamp(_CozySource.volume + (fadeMultiplier * Time.deltaTime), 0, 1) :
Mathf.Clamp(_CozySource.volume - (fadeMultiplier * Time.deltaTime), 0, 1);
if(currentTrack == Track.Building)
{
if (!_BuildingSource.isPlaying)
_BuildingSource.Play();
_BuildingSource.volume = Mathf.Clamp(_BuildingSource.volume + (fadeMultiplier * Time.deltaTime), 0, 1);
}
else
{
_BuildingSource.volume = Mathf.Clamp(_BuildingSource.volume - (fadeMultiplier * Time.deltaTime), 0, 1);
if (_BuildingSource.volume == 0 && _BuildingSource.isPlaying)
_BuildingSource.Stop();
}
if (currentTrack is Track.TurnAround or Track.TurnAroundPlusJeremyLives)
{
if (!_TurnAroundSource.isPlaying)
_TurnAroundSource.Play();
if(!_AdditiveJeremyLivesSource.isPlaying)
_AdditiveJeremyLivesSource.Play();
}
else
{
if (_TurnAroundSource.volume == 0 && _TurnAroundSource.isPlaying)
_TurnAroundSource.Stop();
if (_AdditiveJeremyLivesSource.volume == 0 && _AdditiveJeremyLivesSource.isPlaying)
_AdditiveJeremyLivesSource.Stop();
}
_TurnAroundSource.volume = currentTrack == Track.TurnAround || currentTrack == Track.TurnAroundPlusJeremyLives ?
Mathf.Clamp(_TurnAroundSource.volume + (fadeMultiplier * Time.deltaTime), 0, 1) :
Mathf.Clamp(_TurnAroundSource.volume - (fadeMultiplier * Time.deltaTime), 0, 1);
_AdditiveJeremyLivesSource.volume = currentTrack == Track.TurnAroundPlusJeremyLives ?
Mathf.Clamp(_AdditiveJeremyLivesSource.volume + (fadeMultiplier * Time.deltaTime), 0, 1) :
Mathf.Clamp(_AdditiveJeremyLivesSource.volume - (fadeMultiplier * Time.deltaTime), 0, 1);
if(currentTrack == Track.FinaleBuildUp)
{
if (!_FinaleBuildUpSource.isPlaying)
_FinaleBuildUpSource.Play();
_FinaleBuildUpSource.volume = Mathf.Clamp(_FinaleBuildUpSource.volume + (fadeMultiplier * Time.deltaTime), 0, 1);
}
else
{
_FinaleBuildUpSource.volume = Mathf.Clamp(_FinaleBuildUpSource.volume - (fadeMultiplier * Time.deltaTime), 0, 1);
if (_FinaleBuildUpSource.volume == 0 && _FinaleBuildUpSource.isPlaying)
_FinaleBuildUpSource.Stop();
}
}
}
+17
View File
@@ -0,0 +1,17 @@
using TMPro;
using UnityEngine;
public class MusicManagerTest : MonoBehaviour
{
[SerializeField]
private MusicManager.Track _track;
[SerializeField]
private MusicManager _musicManager;
[ContextMenu("Switch Track")]
public void SwitchTrack()
{
_musicManager.PlayMusic(_track);
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3a80e8e583428c245b275b4d443ea8d9