2026-01-06 19:24:17 +08:00

166 lines
6.0 KiB
C#

using System;
using UnityEngine.UI;
using ZXKFramework;
namespace DongWuYiXue.QiGuanChaGuan
{
public class ImgSelectQuestionPanelTwo : UIBase
{
public override string GroupName => "ImgSelectQuestionPanelTwo";
public override string Name => "ImgSelectQuestionPanelTwo";
public Action nextAction;
public Action<bool> subAction;
ImgSelectManager[] imgSelectManagers;
Button nextBtn;
Button subBtn;
Button resetBtn;
int id;
string stepName;
Toggle maoZi;
Toggle kouZhao;
Toggle shouShuYi;
Toggle shouTao;
/// <summary>
/// 正确答案
/// </summary>
string rightAnswer;
public override void Init(IUIManager uictrl)
{
base.Init(uictrl);
imgSelectManagers = GetComponentsInChildren<ImgSelectManager>(true);
nextBtn = transform.FindFirst<Button>("Next");
nextBtn.onClick.AddListener(Next);
subBtn = transform.FindFirst<Button>("Submit");
subBtn.onClick.AddListener(Submit);
resetBtn = transform.FindFirst<Button>("Reset");
//resetBtn.onClick.AddListener(Reset);
maoZi = transform.FindFirst<Toggle>("1.一次性医用帽子");
kouZhao = transform.FindFirst<Toggle>("2.口罩");
shouShuYi = transform.FindFirst<Toggle>("3.手术衣");
shouTao = transform.FindFirst<Toggle>("4.手套");
maoZi.interactable = true;
kouZhao.interactable = true;
shouShuYi.interactable = true;
shouTao.interactable = true;
maoZi.onValueChanged.AddListener((isOn) =>
{
if (isOn)
{
rightAnswer += maoZi.transform.FindFirst<Text>("Txt").text;
maoZi.interactable = false;
GameManager.Instance.transform.parent.FindFirst("Model").FindFirst("SM_nanyisheng:Scrub_Cap").SetActive(true);
GameManager.Instance.transform.parent.FindFirst("Model").FindFirst("SM_nanyisheng:Short_blowback").SetActive(false);
}
});
kouZhao.onValueChanged.AddListener((isOn) =>
{
if (isOn)
{
rightAnswer += kouZhao.transform.FindFirst<Text>("Txt").text;
kouZhao.interactable = false;
GameManager.Instance.transform.parent.FindFirst("Model").FindFirst("SM_nanyisheng:FaceMask").SetActive(true);
}
});
shouShuYi.onValueChanged.AddListener((isOn) =>
{
if (isOn)
{
rightAnswer += shouShuYi.transform.FindFirst<Text>("Txt").text;
shouShuYi.interactable = false;
GameManager.Instance.transform.parent.FindFirst("Model").FindFirst("SM_nanyisheng:SM_shoushufu").SetActive(true);
}
});
shouTao.onValueChanged.AddListener((isOn) =>
{
if (isOn)
{
rightAnswer += shouTao.transform.FindFirst<Text>("Txt").text;
shouTao.interactable = false;
GameManager.Instance.transform.parent.FindFirst("Model").FindFirst("SM_nanyisheng:SM_shoutao").SetActive(true);
}
});
}
private void Submit()
{
Game.Instance.sound.StopBGM();
if (rightAnswer.Equals("一次性医用帽子口罩手术衣手套"))
{
subAction?.Invoke(true);
Game.Instance.eventManager.Raise(new PlayTrueOrFalseEvent() { isTrue = true });
}
//if (imgSelectManagers[id].Check())
//{
// subAction?.Invoke(true);
// Game.Instance.eventManager.Raise(new PlayTrueOrFalseEvent() { isTrue = true });
//}
else
{
subAction?.Invoke(false);
Game.Instance.eventManager.Raise(new PlayTrueOrFalseEvent() { isTrue = false });
if (MVC.GetModel<Main.GameModel>().modeType == ModeType.ShiXun)
{
ChatUI.Instance.SendAI("用户位于:" + stepName + ",用户的作答为:" + rightAnswer + ",请对用户的作答进行解析,并介绍本步骤正确答案和意义,字数控制在100字以内。", null);
}
else
{
subAction?.Invoke(false);
}
}
subBtn.interactable = false;
resetBtn.interactable = false;
nextBtn.gameObject.SetActive(true);
}
private void Next()
{
ChatUI.Instance.CloseChatTxt();
SetActive(false);
subBtn.interactable = true;
//resetBtn.interactable = true;
nextAction?.Invoke();
}
private void Reset()
{
for (int i = 0; i < imgSelectManagers.Length; i++)
{
if (i == id)
{
imgSelectManagers[i].gameObject.SetActive(true);
imgSelectManagers[i].Init();
}
else
{
imgSelectManagers[i].gameObject.SetActive(false);
}
}
}
public void ShowImgQuestion(int id, string stepName)
{
SetActive(true);
nextBtn.gameObject.SetActive(false);
subBtn.interactable = true;
resetBtn.interactable = true;
this.id = id;
this.stepName = stepName;
for (int i = 0; i < imgSelectManagers.Length; i++)
{
if (i == id)
{
imgSelectManagers[i].gameObject.SetActive(true);
imgSelectManagers[i].Init();
}
else
{
imgSelectManagers[i].gameObject.SetActive(false);
}
}
}
}
}