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

65 lines
1.7 KiB
C#

using Gameplay.Vehicle.Impl;
using LTGame;
namespace Gameplay.Vehicle.State
{
public class VehicleStateIdle: BaseVehicleState
{
private int _loopAudioId;
public VehicleStateIdle(NormalVehicle owner) : base(owner, EVehicleState.Idle)
{
}
protected override void _OnEnter(NBaseState exitState,
object param)
{
base._OnEnter(exitState, param);
owner.vAnim.targetAnim = "idle";
_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);
}
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;
}
}
protected override void _OnExit(NBaseState exitState,
object param)
{
base._OnExit(exitState, param);
if (_loopAudioId != 0)
{
AudioManager.Instance.StopSoundById(_loopAudioId);
}
}
}
}