Progress
This commit is contained in:
@@ -121,9 +121,7 @@ namespace Marro.PacManUdon
|
||||
private void StartAttractMode()
|
||||
{
|
||||
#if RECORDING_DEMO
|
||||
attractScreen.Initialize();
|
||||
// recorder.gameObject.SetActive(true);
|
||||
gameState = PacManGameState.AttractMode;
|
||||
StartTimeSequence(PacManTimeSequence.AttractScreenIntroduction);
|
||||
#else
|
||||
SetGameState(PacManGameState.AttractMode);
|
||||
@@ -170,6 +168,7 @@ namespace Marro.PacManUdon
|
||||
ghostManager.Reset();
|
||||
pacMan.Reset();
|
||||
bonusFruit.Despawn();
|
||||
soundManager.Reset();
|
||||
pelletManager.SetPowerPelletsBlink(false);
|
||||
}
|
||||
|
||||
@@ -204,12 +203,14 @@ namespace Marro.PacManUdon
|
||||
AddScore(50);
|
||||
ghostManager.SetPowerPellet(true);
|
||||
pacMan.SetPowerPellet(true);
|
||||
soundManager.StartGhostSound(true);
|
||||
}
|
||||
|
||||
public void EndPowerPellet()
|
||||
{
|
||||
ghostManager.SetPowerPellet(false);
|
||||
pacMan.SetPowerPellet(false);
|
||||
soundManager.StartGhostSound(false);
|
||||
}
|
||||
|
||||
public void GotFruit()
|
||||
@@ -236,6 +237,11 @@ namespace Marro.PacManUdon
|
||||
StartTimeSequence(PacManTimeSequence.PacManCaught);
|
||||
}
|
||||
|
||||
public void NoGhostsRetreating()
|
||||
{
|
||||
soundManager.EndGhostRetreat();
|
||||
}
|
||||
|
||||
void BoardClearAnimation()
|
||||
{
|
||||
ghostManager.gameObject.SetActive(false);
|
||||
@@ -614,7 +620,7 @@ namespace Marro.PacManUdon
|
||||
case PacManTimeSequence.GhostCaught:
|
||||
return DeltaToAbsolute(new float[] { 0, 0.91667f });
|
||||
case PacManTimeSequence.PacManCaught:
|
||||
return DeltaToAbsolute(new float[] { 0, 1, 2.65f, 2f });
|
||||
return DeltaToAbsolute(new float[] { 0, 1, 0.35f, 2.40f, 2f });
|
||||
case PacManTimeSequence.RestartLevel:
|
||||
return DeltaToAbsolute(new float[] { 0, 0.016f, 0.064f, 0.032f, 1.85f, 0.016f });
|
||||
case PacManTimeSequence.GameOver:
|
||||
@@ -644,7 +650,10 @@ namespace Marro.PacManUdon
|
||||
{
|
||||
case 0:
|
||||
SetGameState(PacManGameState.AttractMode);
|
||||
|
||||
// Initialize
|
||||
soundManager.SuppressSound(true);
|
||||
RestartLevel();
|
||||
HideEverything();
|
||||
SetFrozen(true);
|
||||
attractScreen.gameObject.SetActive(true);
|
||||
@@ -1157,6 +1166,7 @@ namespace Marro.PacManUdon
|
||||
case 0:
|
||||
SetGameState(PacManGameState.WaitForStart);
|
||||
HideEverything();
|
||||
soundManager.SuppressSound(false);
|
||||
soundManager.PlayCoinSound();
|
||||
break;
|
||||
case 1:
|
||||
@@ -1200,6 +1210,7 @@ namespace Marro.PacManUdon
|
||||
InitializeLevel();
|
||||
RestartLevel();
|
||||
SetFrozen(true);
|
||||
soundManager.SuppressSound(false);
|
||||
soundManager.PlayGameStartSound();
|
||||
break;
|
||||
case 1:
|
||||
@@ -1241,7 +1252,7 @@ namespace Marro.PacManUdon
|
||||
break;
|
||||
case 6:
|
||||
// Start game, end sequence
|
||||
soundManager.StartGhostSound();
|
||||
soundManager.StartGhostSound(false);
|
||||
SetFrozen(false);
|
||||
break;
|
||||
}
|
||||
@@ -1317,7 +1328,7 @@ namespace Marro.PacManUdon
|
||||
case 4:
|
||||
// Unfreeze
|
||||
SetFrozen(false);
|
||||
soundManager.StartGhostSound();
|
||||
soundManager.StartGhostSound(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1337,6 +1348,7 @@ namespace Marro.PacManUdon
|
||||
SetPacManActive(true);
|
||||
SetFrozen(false);
|
||||
ghostManager.GhostCaughtContinue();
|
||||
soundManager.StartGhostRetreat();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1356,6 +1368,10 @@ namespace Marro.PacManUdon
|
||||
pacMan.SetDead(true);
|
||||
break;
|
||||
case 2:
|
||||
// Start playing death sound
|
||||
soundManager.PlayDeathSound();
|
||||
break;
|
||||
case 3:
|
||||
// Hide pacman, start next state
|
||||
SetPacManActive(false);
|
||||
if (gameState == PacManGameState.AttractModeDemo)
|
||||
@@ -1370,7 +1386,7 @@ namespace Marro.PacManUdon
|
||||
|
||||
InsertTimeSequence(PacManTimeSequence.GameOver);
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
if (gameState == PacManGameState.AttractModeDemo)
|
||||
{
|
||||
#if RECORDING_DEMO
|
||||
@@ -1414,7 +1430,7 @@ namespace Marro.PacManUdon
|
||||
case 5:
|
||||
// Unfreeze
|
||||
SetFrozen(false);
|
||||
soundManager.StartGhostSound();
|
||||
soundManager.StartGhostSound(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -362,6 +362,7 @@ namespace Marro.PacManUdon
|
||||
case PacManGhostState.Entering:
|
||||
offGrid = true;
|
||||
SetState(PacManGhostState.Home);
|
||||
ghostManager.GhostReturned();
|
||||
if (!target.Equals(idlePosition1))
|
||||
{ // This is idlePosition1 if PacManGhostStartState == TargetingIdlePosition1
|
||||
SetOffGridTarget(idlePosition2, false);
|
||||
|
||||
@@ -224,6 +224,20 @@
|
||||
gameController.PacManCaught();
|
||||
}
|
||||
|
||||
public void GhostReturned()
|
||||
{
|
||||
foreach (var ghost in ghosts)
|
||||
{
|
||||
var state = ghost.GetGhostState();
|
||||
if (state == PacManGhostState.CaughtScore || state == PacManGhostState.Returning || state == PacManGhostState.Entering)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
gameController.NoGhostsRetreating();
|
||||
}
|
||||
|
||||
void SetGhostBlinking(bool blinking)
|
||||
{
|
||||
blinkingActivated = blinking;
|
||||
|
||||
@@ -43,7 +43,7 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 10
|
||||
Data: 16
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
@@ -331,13 +331,13 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: pacFruit
|
||||
Data: pacDie1
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: pacFruit
|
||||
Data: pacDie1
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
@@ -385,13 +385,13 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: pacCoin
|
||||
Data: pacFruit
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: pacCoin
|
||||
Data: pacFruit
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
@@ -439,13 +439,13 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: pacGhostEat
|
||||
Data: pacCoin
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: pacGhostEat
|
||||
Data: pacCoin
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
@@ -493,13 +493,13 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: pacGhost1
|
||||
Data: pacGhostEat
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: pacGhost1
|
||||
Data: pacGhostEat
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
@@ -547,13 +547,175 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: nextDotSound
|
||||
Data: pacGhost1
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: nextDotSound
|
||||
Data: pacGhost1
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 6
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: true
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: pacGhostBlue
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: pacGhostBlue
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 6
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: true
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 35|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 36|UnityEngine.SerializeField, UnityEngine.CoreModule
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: pacGhostRetreat
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 37|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: pacGhostRetreat
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 6
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: true
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 38|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 39|UnityEngine.SerializeField, UnityEngine.CoreModule
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _nextDotSound
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 40|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _nextDotSound
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 10
|
||||
@@ -574,7 +736,157 @@ MonoBehaviour:
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
Data: 41|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 0
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _isRetreating
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 42|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _isRetreating
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 43|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: System.Boolean, mscorlib
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 43
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 6
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 0
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _isBlue
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _isBlue
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 43
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 43
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 6
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 46|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 0
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _suppress
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 47|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _suppress
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 43
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 43
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 6
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 48|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 0
|
||||
|
||||
@@ -12,16 +12,41 @@ public class SoundManager : UdonSharpBehaviour
|
||||
[SerializeField] private AudioClip pacStart;
|
||||
[SerializeField] private AudioClip pacDot1;
|
||||
[SerializeField] private AudioClip pacDot2;
|
||||
[SerializeField] private AudioClip pacDie1;
|
||||
[SerializeField] private AudioClip pacFruit;
|
||||
[SerializeField] private AudioClip pacCoin;
|
||||
[SerializeField] private AudioClip pacGhostEat;
|
||||
[SerializeField] private AudioClip pacGhost1;
|
||||
[SerializeField] private AudioClip pacGhostBlue;
|
||||
[SerializeField] private AudioClip pacGhostRetreat;
|
||||
|
||||
private AudioClip nextDotSound;
|
||||
private AudioClip _nextDotSound;
|
||||
private bool _isRetreating;
|
||||
private bool _isBlue;
|
||||
|
||||
private bool _suppress;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
nextDotSound = pacDot2;
|
||||
Reset();
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
_nextDotSound = pacDot2;
|
||||
_isRetreating = false;
|
||||
_isBlue = false;
|
||||
_suppress = false;
|
||||
}
|
||||
|
||||
public void SuppressSound(bool suppress)
|
||||
{
|
||||
_suppress = suppress;
|
||||
|
||||
if (suppress)
|
||||
{
|
||||
StopAllSound();
|
||||
}
|
||||
}
|
||||
|
||||
public void PlayGameStartSound()
|
||||
@@ -31,8 +56,13 @@ public class SoundManager : UdonSharpBehaviour
|
||||
|
||||
public void PlayPelletSound()
|
||||
{
|
||||
PlaySound(audioSourcePlayer, nextDotSound);
|
||||
nextDotSound = nextDotSound == pacDot1 ? pacDot2 : pacDot1;
|
||||
PlaySound(audioSourcePlayer, _nextDotSound);
|
||||
_nextDotSound = _nextDotSound == pacDot1 ? pacDot2 : pacDot1;
|
||||
}
|
||||
|
||||
public void PlayDeathSound()
|
||||
{
|
||||
PlaySound(audioSourcePlayer, pacDie1);
|
||||
}
|
||||
|
||||
public void PlayFruitSound()
|
||||
@@ -50,9 +80,36 @@ public class SoundManager : UdonSharpBehaviour
|
||||
PlaySound(audioSourcePlayer, pacGhostEat);
|
||||
}
|
||||
|
||||
public void StartGhostSound()
|
||||
public void StartGhostSound(bool isBlue)
|
||||
{
|
||||
PlaySound(audioSourceGhosts, pacGhost1, true);
|
||||
_isBlue = isBlue;
|
||||
|
||||
if (_isRetreating)
|
||||
{
|
||||
// Retreating overrides other ghost sound
|
||||
return;
|
||||
}
|
||||
|
||||
var sound = _isBlue ? pacGhostBlue : pacGhost1;
|
||||
PlaySound(audioSourceGhosts, sound, true);
|
||||
}
|
||||
|
||||
public void StartGhostRetreat()
|
||||
{
|
||||
_isRetreating = true;
|
||||
PlaySound(audioSourceGhosts, pacGhostRetreat, true);
|
||||
}
|
||||
|
||||
public void EndGhostRetreat()
|
||||
{
|
||||
if (!_isRetreating)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_isRetreating = false;
|
||||
|
||||
StartGhostSound(_isBlue);
|
||||
}
|
||||
|
||||
public void StopAllSound()
|
||||
@@ -63,6 +120,17 @@ public class SoundManager : UdonSharpBehaviour
|
||||
|
||||
private void PlaySound(AudioSource audioSource, AudioClip audioClip, bool loop = false)
|
||||
{
|
||||
if (_suppress)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (loop && audioSource.clip == audioClip)
|
||||
{
|
||||
// Don't restart a looping sound
|
||||
return;
|
||||
}
|
||||
|
||||
audioSource.clip = audioClip;
|
||||
audioSource.Play();
|
||||
audioSource.loop = loop;
|
||||
|
||||
Reference in New Issue
Block a user