NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Vehicle/State/VehicleStateIdle.cs

65 lines
1.7 KiB
C#
Raw Normal View History

2023-08-22 19:08:45 +08:00
using Gameplay.Vehicle.Impl;
using LTGame;
namespace Gameplay.Vehicle.State
{
public class VehicleStateIdle: BaseVehicleState
{
2024-10-10 19:06:51 +08:00
private int _loopAudioId;
2023-08-22 19:08:45 +08:00
public VehicleStateIdle(NormalVehicle owner) : base(owner, EVehicleState.Idle)
{
}
protected override void _OnEnter(NBaseState exitState,
object param)
{
base._OnEnter(exitState, param);
owner.vAnim.targetAnim = "idle";
2024-10-10 19:06:51 +08:00
_PlayAudio();
}
private void _PlayAudio()
{
_loopAudioId = -1;
if (string.IsNullOrEmpty(owner.configData.audioData.IdleLoopAudioId))
{
return;
}
_loopAudioId = AudioManager.Instance.PlayAudio(owner.configData.audioData.IdleLoopAudioId, AudioCriManager.EPlayType.Sound, owner.Node.GameObject, true);
2023-08-22 19:08:45 +08:00
}
protected override void _OnRunning()
{
base._OnRunning();
if (owner.aliveData.currentHp <= 0)
{
isFinished = true;
nextState = EVehicleState.Destroy;
return;
}
if (owner.controlData.targetCellIndex != -1)
{
isFinished = true;
nextState = EVehicleState.Move;
return;
}
}
2024-10-10 19:06:51 +08:00
protected override void _OnExit(NBaseState exitState,
object param)
{
base._OnExit(exitState, param);
if (_loopAudioId != 0)
{
AudioManager.Instance.StopSoundById(_loopAudioId);
}
}
2023-08-22 19:08:45 +08:00
}
}