using UnityEngine; using System; [CreateAssetMenu(menuName = "CharacterStateMachine/Actions/SpyInteract")] public class SpyInteractAction : Action { public override void StartAct(StateController controller) { controller.characterAnimator.SetTrigger(controller.SelectedInteraction.characterInteraction); Vector3 awayDirection =(controller.transform.position - controller.SelectedObject.transform.position).normalized; Vector3 newPos = controller.SelectedObject.transform.position + awayDirection * controller.SelectedInteraction.interactionDistance; controller.navMeshAgent.stoppingDistance = 0.0f; controller.Destination = newPos; } public override void Act(StateController controller) { controller.FaceSelectedObject(); AnimatorStateInfo info = controller.animator.GetCurrentAnimatorStateInfo(0); if (info.IsName(CharacterAnimator.GetParamName(controller.SelectedInteraction.characterInteraction))) { float progress = info.normalizedTime; ProgressPanelController.ActivePanel.Progress = progress; } } public override void EndAct(StateController controller) { // Debug.Log("Ending SpyInteract"); ProgressPanelController.ActivePanel.Hide(); controller.FinishInteraction(); } }