2023-09-18 03:39:32 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2023-09-18 00:01:05 +08:00
|
|
|
|
using DragonSoul.Shared;
|
2023-09-18 03:39:32 +08:00
|
|
|
|
using Mono.Event;
|
2023-09-18 00:01:05 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.Playables;
|
|
|
|
|
|
|
|
|
|
namespace UnityTest.ZXL
|
2023-09-12 23:57:06 +08:00
|
|
|
|
{
|
|
|
|
|
public class ThirdProcess : ProcessBase
|
|
|
|
|
{
|
2023-09-18 00:01:05 +08:00
|
|
|
|
public override ProcessType processType => ProcessType.三_准备场景;
|
|
|
|
|
|
2023-09-18 03:39:32 +08:00
|
|
|
|
protected override void OnInit()
|
|
|
|
|
{
|
|
|
|
|
base.OnInit();
|
|
|
|
|
StartAsync().Coroutine();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnLevel()
|
|
|
|
|
{
|
|
|
|
|
base.OnLevel();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async ETTask StartAsync()
|
|
|
|
|
{
|
|
|
|
|
var ui = UIManager.Instance().ShowUI(UIType.Chapter);
|
|
|
|
|
var chapterUI = ui as ChapterUI;
|
|
|
|
|
if (chapterUI == null)
|
|
|
|
|
{
|
|
|
|
|
Debug.LogError($"{ui.GetType()}");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await chapterUI.Transit(2);
|
|
|
|
|
UIManager.Instance().HideUI(UIType.Chapter);
|
|
|
|
|
|
|
|
|
|
this.SetPlayDirector(playableDirectors[0], PlayTimelineMode.Play);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void Next()
|
|
|
|
|
{
|
|
|
|
|
base.Next();
|
|
|
|
|
switch (index)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[0], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[1], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[2], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[3], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[4], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
this.SetPlayDirector(playableDirectors[5], PlayTimelineMode.Play);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
EventManager.Instance.FireNow(this, new ProcessOverEventArgs(processType));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ConstEventLogic(object sender, GameEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.ConstEventLogic(sender, e);
|
|
|
|
|
var args = e as ConstEventArgs;
|
|
|
|
|
this.SetPlayDirector(CurrentPlayableDirector, PlayTimelineMode.Pause);
|
|
|
|
|
|
|
|
|
|
switch (args.constDataType)
|
|
|
|
|
{
|
|
|
|
|
case ConstDataType.None:
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.警示牌高亮并等待点击:
|
|
|
|
|
WaitOperateFinish3_1_1().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开二次确认提示并等待点击:
|
|
|
|
|
WaitOperateFinish3_1_2().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开穿戴面板等待穿戴完成:
|
|
|
|
|
WaitOperateFinish3_1_3().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开密封性良好提示并等待点击:
|
|
|
|
|
WaitOperateFinish3_1_4().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开气体探测器检测正常并等待关闭:
|
|
|
|
|
WaitOperateFinish3_1_5().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.点击进入实验室按钮:
|
|
|
|
|
currentTask.SetResult(true);
|
|
|
|
|
break;
|
|
|
|
|
case ConstDataType.打开确认电源关闭提示并等待点击:
|
|
|
|
|
WaitOperateFinish3_1_6().Coroutine();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
throw new ArgumentOutOfRangeException();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void ClickObjectEvent(object sender, GameEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.ClickObjectEvent(sender, e);
|
|
|
|
|
var args = e as ClickObjectEventArgs;
|
|
|
|
|
switch (args.objectType)
|
|
|
|
|
{
|
|
|
|
|
case HighlightObjectType.警示牌:
|
|
|
|
|
currentTask.SetResult(true);
|
|
|
|
|
break;
|
|
|
|
|
case HighlightObjectType.应急处理表:
|
|
|
|
|
currentTask.SetResult(true);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
throw new ArgumentOutOfRangeException();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 3-1
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish3_1_1() // 警示牌高亮并等待点击
|
|
|
|
|
{
|
|
|
|
|
await WaitOperateFinish_ClickHighlight(HighlightObjectType.警示牌);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish3_1_2() // 打开二次确认提示并等待点击
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“对现场情况进行二次确认", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish3_1_3() //
|
|
|
|
|
{
|
|
|
|
|
this.SetPlayDirector(CurrentPlayableDirector, PlayTimelineMode.Resume);
|
|
|
|
|
// await WaitOperateFinish_Click();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish3_1_4() //
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“两人防护服整齐,拉链处和鄂下处密封良好。", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish3_1_5() //
|
|
|
|
|
{
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
|
|
|
|
|
// var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
// var strongTipsUI = showUI as GasDetectorUI;
|
|
|
|
|
// strongTipsUI.SetAction(() => { currentTask.SetResult(true); });
|
|
|
|
|
//
|
|
|
|
|
// await WaitOperateFinish_Click();
|
|
|
|
|
// await currentTask;
|
|
|
|
|
// UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async ETTask WaitOperateFinish3_1_6() //
|
|
|
|
|
{
|
|
|
|
|
var showUI = UIManager.Instance().ShowUI(UIType.StrongTips);
|
|
|
|
|
var strongTipsUI = showUI as StrongTipsUI;
|
|
|
|
|
strongTipsUI.SetContent("提示", "“已确认电源关闭。", () => { currentTask.SetResult(true); }, 1);
|
|
|
|
|
|
|
|
|
|
await WaitOperateFinish_Click();
|
|
|
|
|
await currentTask;
|
|
|
|
|
UIManager.Instance().HideUI(UIType.StrongTips);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
2023-09-12 23:57:06 +08:00
|
|
|
|
// 3-1
|
|
|
|
|
// ①来到泄露现场,实验室门口站着同学G、F老师,L老师和J老师推着应急器材专用车来到实验室门口,将专用车放置在实验室走廊上,应急器材专用车中的警示牌高亮,点击后,在实验室入口处播放动画16,播放完毕显示警示牌和隔离带;
|
|
|
|
|
|
|
|
|
|
// 3-2
|
|
|
|
|
// ①视角跟随J老师来到F老师面前,这时F老师手中应急处理表高亮,点击后,F老师将手上应急处理表递给J老师,并出现“对现场情况进行二次确认”弹框,点击确认,进行下一步;
|
|
|
|
|
|
|
|
|
|
// 3-3
|
|
|
|
|
// ①进入界面,弹出提示“按住鼠标左键,将防护用品穿到身上。”,并播放配音;
|
|
|
|
|
// ②用户按住鼠标左键将模型拖拽至实验员身上,完成穿戴;当所有防护用品都穿戴完毕后,弹出“确定”按钮,进行下一步;
|
|
|
|
|
|
|
|
|
|
// 3-4
|
|
|
|
|
// ①视角对准L老师和J老师,播放动画18,播放完后弹出提示“两人防护服整齐,拉链处和鄂下处密封良好。”,点击“确定”按钮,进行下一步;
|
|
|
|
|
|
|
|
|
|
// 3-5
|
|
|
|
|
// ①视角对准实验室门口,播放动画2-7,动画播完后,视角对准L老师,播放动画2-8,动画播完,弹出 气体探测器结果界面,显示“正常”,点击“进入实验室”按钮;
|
|
|
|
|
// ②播放动画2-9,动画播完,自动跳转至下一步;
|
|
|
|
|
|
|
|
|
|
// 3-6
|
|
|
|
|
// ①视角来到实验室内,播放动画2-10,待电源开关关闭后,弹出“已确认电源关闭”提示框,点击确认,再播放J老师开门进入实验室动作;
|
|
|
|
|
}
|
|
|
|
|
}
|