OldBlueWater/BlueWater/Assets/02.Scripts/Npc/OrderToPrisonState.cs

48 lines
1.2 KiB
C#
Raw Normal View History

2023-10-30 15:45:05 +00:00
using System;
using UnityEngine;
using UnityEngine.AI;
namespace BlueWaterProject
{
public class OrderToPrisonState : INpcState
{
private NavMeshAgent agent;
private InShipMapInfo inShipMapInfo;
public OrderToPrisonState(NavMeshAgent agent, InShipMapInfo inShipMapInfo)
{
this.agent = agent;
this.inShipMapInfo = inShipMapInfo;
}
2023-10-30 15:45:05 +00:00
public event Action OnUnityEvent;
public void OnEnter(NpcStateMachine npcStateMachine)
{
inShipMapInfo.OpenPrisonDoor();
agent.isStopped = true;
agent.destination = inShipMapInfo.prisonPoint.position;
agent.speed = 10f;
agent.isStopped = false;
}
public void OnUpdate(NpcStateMachine npcStateMachine)
{
if (!agent.pathPending && agent.remainingDistance < 1f)
{
inShipMapInfo.ClosePrisonDoor();
agent.speed = 3.5f;
}
}
public void OnExit(NpcStateMachine npcStateMachine)
{
}
public INpcState Clone()
{
return null;
}
}
}