using Cysharp.Threading.Tasks; using Unity.Loader; using UnityEngine; namespace ZC { [Procedure(ProcedureType.常规血液与尿液分析Procedure)] class 常规血液与尿液分析Procedure : ProcedureBase { SceneGameObjectBinding binding; TriggerEvent triggerEvent; public override void OnEnter() { base.OnEnter(); ResourcesLocalComponent.Instance.LoadScene(AssetConst.Assets_DemoGame_GameRes_Scene_ChouXueScene_unity); var introduceUI = (IntroduceUI)Global.UIManager.ShowUI(UIType.IntroduceUI); introduceUI.SetData(ConstStr.常规血液与尿液分析, ConstStr.常规血液与尿液分析介绍, IntroduceUI_Callback); } private void IntroduceUI_Callback() { Global.UIManager.CloseLast(); var modelDisplayUI = (ModelDisplayUI)Global.UIManager.ShowUI(UIType.ModelDisplayUI); modelDisplayUI.SetData(ModelDisplayUI_Callback); } private void ModelDisplayUI_Callback() { Global.UIManager.CloseLast(); var minTipsUI = (MinTipsUI)Global.UIManager.ShowUI(UIType.MinTipsUI); minTipsUI.SetData("知识点讲解", "常规血液与尿液分析知识点讲解——设备认知之后的", MinTipsUI_Callback); } private void MinTipsUI_Callback() { Global.UIManager.CloseLast(); var bigTipsUI = (BigTipsUI)Global.UIManager.ShowUI(UIType.BigTipsUI); bigTipsUI.SetData("移动到护士身边进行常规血液检查"); var minTipsUI = (MinTipsUI)Global.UIManager.ShowUI(UIType.MinTipsUI); minTipsUI.SetData("知识点讲解1", "常规血液与尿液分析知识点讲解——设备认知之后的1", () => { Global.UIManager.HideUI(UIType.MinTipsUI); }); binding = GameObject.FindObjectOfType(); var gameObject = binding.GetValue("常规血液检查点"); triggerEvent = gameObject.GetOrAddComponent(); triggerEvent.SetData(PlayerMoveToPoint); } private void PlayerMoveToPoint() { Global.UIManager.HideUI(UIType.BigTipsUI); Global.UIManager.HideUI(UIType.MinTipsUI); triggerEvent.Dispose(); // 播放抽血动画 var minTipsUI = (MinTipsUI)Global.UIManager.ShowUI(UIType.MinTipsUI); minTipsUI.SetData("知识点讲解2", "常规血液与尿液分析知识点讲解——设备认知之后的2 ----------- 播放抽血动画", () => { Global.UIManager.HideUI(UIType.MinTipsUI); PlayChouXueAni().Forget(); }); } async UniTask PlayChouXueAni() { await UniTask.Delay(3000); var bigTipsUI = (BigTipsUI)Global.UIManager.ShowUI(UIType.BigTipsUI); bigTipsUI.SetData("根据箭头指引让老人去进行尿液取样"); GameObject go_NiaoYe; go_NiaoYe = binding.GetValue("尿液取样点"); triggerEvent = go_NiaoYe.GetOrAddComponent(); triggerEvent.SetData(PlayerMoveToPoint1); } private void PlayerMoveToPoint1() { // 打开U取样面板 async UniTask RunAsync() { Global.UIManager.HideUI(UIType.BigTipsUI); await UniTask.Delay(3000); var urineSamplingUI = (UrineSamplingUI)Global.UIManager.ShowUI(UIType.UrineSamplingUI); urineSamplingUI.SetData(UrineSamplingUI_Callback); } triggerEvent.Dispose(); RunAsync().Forget(); } private void UrineSamplingUI_Callback() { Global.UIManager.CloseLast(); var analysisReportUI = (AnalysisReportUI)Global.UIManager.ShowUI(UIType.AnalysisReportUI); analysisReportUI.SetData("血常规与尿液分析报告", null, "血常规与尿液分析报告内容", AnalysisReportUI_Callback); } private void AnalysisReportUI_Callback() { Global.UIManager.CloseLast(); var answerUI = (AnswerUI)Global.UIManager.ShowUI(UIType.AnswerUI); answerUI.SetData(AnswerUI_Callback); } private void AnswerUI_Callback() { Global.UIManager.CloseLast(); Global.ProcedureManager.ChangeProcedure(ProcedureType.返回体检场景Procedure); } } }