2021-09-03 18:08:56 +08:00
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using Fungus;
|
|
|
|
|
using UnityEngine.InputSystem;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
using UnityEngine.SceneManagement;
|
|
|
|
|
using Cinemachine;
|
|
|
|
|
|
|
|
|
|
public class AfterReparedTheMachine : Event
|
|
|
|
|
{
|
|
|
|
|
private RepairBench repairBench;
|
|
|
|
|
private CinemachineVirtualCamera Vcamera;
|
|
|
|
|
[Tooltip("请拖入巡逻敌人")]
|
|
|
|
|
public Patrolman patrolman1;
|
|
|
|
|
[Tooltip("请拖入巡逻敌人")]
|
|
|
|
|
public Patrolman patrolman2;
|
|
|
|
|
private M_Player player;
|
|
|
|
|
[Tooltip("请拖入电报机UI界面")]
|
|
|
|
|
public GameObject MachineUI;
|
2021-09-14 20:30:57 +08:00
|
|
|
|
[Tooltip("请拖入电报机操作提示界面")]
|
|
|
|
|
public GameObject OpUI;
|
2021-09-03 18:08:56 +08:00
|
|
|
|
[Tooltip("请拖入倒计时UI")]
|
|
|
|
|
public Text countDown;
|
|
|
|
|
private int leftTime = 10;
|
|
|
|
|
public GameObject blackUI;
|
|
|
|
|
private Machine machine;
|
2021-09-07 22:20:19 +08:00
|
|
|
|
|
|
|
|
|
public WVParallax parallax;
|
2021-09-09 00:59:27 +08:00
|
|
|
|
public AudioSource gunAudio;
|
2021-09-14 20:30:57 +08:00
|
|
|
|
public AudioSource countDownSE;
|
2021-09-03 18:08:56 +08:00
|
|
|
|
void Start()
|
|
|
|
|
{
|
|
|
|
|
repairBench = FindObjectOfType<RepairBench>();
|
|
|
|
|
Vcamera = FindObjectOfType<CinemachineVirtualCamera>();
|
|
|
|
|
player = FindObjectOfType<M_Player>();
|
|
|
|
|
machine = FindObjectOfType<Machine>();
|
|
|
|
|
//OnCall();
|
|
|
|
|
}
|
|
|
|
|
//事件,当修完电报机
|
|
|
|
|
public override void OnCall()
|
|
|
|
|
{
|
|
|
|
|
StartCoroutine("Process");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private IEnumerator Process()
|
|
|
|
|
{
|
2021-09-10 23:06:40 +08:00
|
|
|
|
//parallax.canParallax = false;
|
2021-09-03 18:08:56 +08:00
|
|
|
|
//1.关闭玩家操作地图
|
|
|
|
|
FindObjectOfType<PlayerInput>().
|
|
|
|
|
SwitchCurrentActionMap("NullMap");
|
|
|
|
|
//2.给玩家若干反应时间,然后关闭修理电报机界面
|
|
|
|
|
yield return new WaitForSeconds(0f);
|
|
|
|
|
repairBench.m_interface.SetActive(false);
|
2021-09-14 20:30:57 +08:00
|
|
|
|
OpUI.SetActive(false);
|
2021-09-03 18:08:56 +08:00
|
|
|
|
//3.再过若干时间,镜头跟踪物改为敌人
|
|
|
|
|
yield return new WaitForSeconds(2f);
|
|
|
|
|
Vcamera.Follow = patrolman1.transform;
|
|
|
|
|
//4.同时,敌人的targe改为玩家
|
|
|
|
|
patrolman1.ChangeTargetTo(player.transform);
|
|
|
|
|
patrolman2.ChangeTargetTo(player.transform);
|
|
|
|
|
patrolman1.GetComponent<Animator>().SetBool("IsRush",true);
|
|
|
|
|
patrolman2.GetComponent<Animator>().SetBool("IsRush",true);
|
|
|
|
|
//5.若干时间后,镜头跟踪物改为玩家
|
|
|
|
|
yield return new WaitForSeconds(4f);
|
|
|
|
|
Vcamera.Follow = player.transform;
|
|
|
|
|
//6.若干短时间后,敌人的target改为普通巡逻点
|
|
|
|
|
yield return new WaitForSeconds(1f);
|
|
|
|
|
patrolman1.ChangeTargetTo(patrolman1.point1);
|
|
|
|
|
patrolman2.ChangeTargetTo(patrolman1.point1);
|
|
|
|
|
//7.若干时间后,弹出对话【被发现了】
|
|
|
|
|
Flowchart.BroadcastFungusMessage("被发现了");
|
|
|
|
|
}
|
|
|
|
|
public void AfterChat()
|
|
|
|
|
{
|
|
|
|
|
machine.OnCall();
|
|
|
|
|
player.catched = machine;
|
|
|
|
|
MachineUI.SetActive(true);
|
|
|
|
|
player.GetComponent<PlayerInput>().
|
|
|
|
|
SwitchCurrentActionMap("PlayerInCoding");
|
|
|
|
|
countDown.gameObject.SetActive(true);
|
2021-09-14 20:30:57 +08:00
|
|
|
|
countDownSE.Play();
|
2021-09-03 18:08:56 +08:00
|
|
|
|
InvokeRepeating("CountDown",0,1);
|
|
|
|
|
}
|
|
|
|
|
private void CountDown()
|
|
|
|
|
{
|
|
|
|
|
countDown.text = "倒计时" + leftTime;
|
|
|
|
|
leftTime--;
|
|
|
|
|
if(leftTime == 0)
|
|
|
|
|
{
|
|
|
|
|
//当倒计时结束
|
|
|
|
|
blackUI.SetActive(true);
|
2021-09-14 20:30:57 +08:00
|
|
|
|
countDownSE.Stop();
|
|
|
|
|
CancelInvoke("CountDown");
|
|
|
|
|
countDown.gameObject.SetActive(false);
|
2021-09-10 01:20:36 +08:00
|
|
|
|
Invoke("PlayGunAudio",1.5f);
|
2021-09-03 18:08:56 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-09 00:59:27 +08:00
|
|
|
|
private void PlayGunAudio()
|
|
|
|
|
{
|
|
|
|
|
gunAudio.Play();
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-03 18:08:56 +08:00
|
|
|
|
}
|