348 lines
10 KiB
C#
348 lines
10 KiB
C#
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using QFramework;
|
||
using System.ComponentModel;
|
||
using System.Linq;
|
||
|
||
namespace QFramework.Example
|
||
{
|
||
|
||
public class UIInput_AnHuiBaoShiData : UIPanelData
|
||
{
|
||
}
|
||
public partial class UIInput_AnHuiBaoShi : UIPanel
|
||
{
|
||
|
||
public int CurrentInputIndex;//当前索引次数
|
||
[Header("所有的图片")]
|
||
public Image[] images;
|
||
|
||
[Header("设置最大目标值")]
|
||
public string[] targetMax; // 设置最大目标值
|
||
[Header("设置最小目标值")]
|
||
public string[] targetMin; // 设置最小目标值
|
||
|
||
[Header("最大目标值错误次数")]
|
||
public int errowIntMax = 0;//最大目标值错误次数
|
||
[Header("最小目标值错误次数")]
|
||
public int errowIntMin = 0;//最小目标值错误次数
|
||
[Header("错误弹窗")]
|
||
public GameObject errowTip;//错误弹窗
|
||
public Button errowTipClickBtn;//错误弹窗,确认按钮
|
||
|
||
|
||
private string tMP_InputField1Value = "1.770";
|
||
|
||
private string tMP_InputField2Value = "1.762";
|
||
|
||
private string tMP_InputField3Value = "0.008";
|
||
|
||
public int tMP_InputField1ErrowIndex = 0;
|
||
public int tMP_InputField2ErrowIndex = 0;
|
||
public int tMP_InputField3ErrowIndex = 0;
|
||
|
||
|
||
|
||
public GameObject ZheSheInput;//输入三个数值的输入框
|
||
|
||
|
||
|
||
public void OnReSet()
|
||
{
|
||
|
||
InputFieldmax.gameObject.SetActive(true);
|
||
InputFieldmin.gameObject.SetActive(true);
|
||
images[0].gameObject.SetActive(true);
|
||
images[1].gameObject.SetActive(false);
|
||
images[2].gameObject.SetActive(false);
|
||
images[3].gameObject.SetActive(false);
|
||
images[4].gameObject.SetActive(false);
|
||
tMP_InputField1.gameObject.SetActive(false);
|
||
tMP_InputField2.gameObject.SetActive(false);
|
||
tMP_InputField3.gameObject.SetActive(false);
|
||
errowTip.gameObject.SetActive(false);
|
||
CurrentInputIndex = 0;
|
||
errowIntMax = 0;
|
||
errowIntMin = 0;
|
||
}
|
||
protected override void OnInit(IUIData uiData = null)
|
||
{
|
||
mData = uiData as UIInput_AnHuiBaoShiData ?? new UIInput_AnHuiBaoShiData();
|
||
OnReSet();
|
||
OnOpen();
|
||
}
|
||
|
||
protected override void OnOpen(IUIData uiData = null)
|
||
{
|
||
|
||
transform.SetAsLastSibling();
|
||
|
||
ZheSheInput.gameObject.SetActive(false);
|
||
|
||
CurrentInputIndex = 0;
|
||
errowIntMax = 0;
|
||
errowIntMin = 0;
|
||
|
||
|
||
InputFieldmax.onEndEdit.RemoveAllListeners();
|
||
InputFieldmin.onEndEdit.RemoveAllListeners();
|
||
|
||
InputFieldmax.onEndEdit.AddListener(CheckInputMax);
|
||
InputFieldmin.onEndEdit.AddListener(CheckInputMin);
|
||
|
||
tMP_InputField1.onEndEdit.RemoveAllListeners();
|
||
tMP_InputField2.onEndEdit.RemoveAllListeners();
|
||
tMP_InputField3.onEndEdit.RemoveAllListeners();
|
||
tMP_InputField1.onEndEdit.AddListener(CheacktMP_InputField1String);
|
||
tMP_InputField2.onEndEdit.AddListener(CheacktMP_InputField2String);
|
||
tMP_InputField3.onEndEdit.AddListener(CheacktMP_InputField3String);
|
||
|
||
tMP_InputField1.gameObject.SetActive(true);
|
||
tMP_InputField2.gameObject.SetActive(true);
|
||
tMP_InputField3.gameObject.SetActive(true);
|
||
}
|
||
public void CheackAllInputField()
|
||
{
|
||
|
||
if (tMP_InputField1.text == tMP_InputField1Value && tMP_InputField2.text == tMP_InputField2Value &&
|
||
tMP_InputField3.text == tMP_InputField3Value)
|
||
{
|
||
|
||
StringEventSystem.Global.Send("InputUI使用结束");
|
||
}
|
||
|
||
}
|
||
|
||
private void CheacktMP_InputField1String(string userInput)
|
||
{
|
||
if (userInput == tMP_InputField1Value)
|
||
{
|
||
tMP_InputField1.text = tMP_InputField1Value;
|
||
tMP_InputField1.DeactivateInputField();
|
||
tMP_InputField1.readOnly = true;
|
||
CheackAllInputField();
|
||
}
|
||
else
|
||
{
|
||
tMP_InputField1ErrowIndex++;
|
||
if (tMP_InputField1ErrowIndex >= 3)
|
||
{
|
||
tMP_InputField1.text = tMP_InputField1Value;
|
||
tMP_InputField1.DeactivateInputField();
|
||
tMP_InputField1.readOnly = true;
|
||
CheackAllInputField();
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
|
||
errowTip.gameObject.SetActive(true);
|
||
tMP_InputField1.text = string.Empty;
|
||
}
|
||
}
|
||
}
|
||
private void CheacktMP_InputField2String(string userInput)
|
||
{
|
||
if (userInput == tMP_InputField2Value)
|
||
{
|
||
tMP_InputField2.text = tMP_InputField2Value;
|
||
tMP_InputField2.DeactivateInputField();
|
||
tMP_InputField2.readOnly = true; CheackAllInputField();
|
||
}
|
||
else
|
||
{
|
||
tMP_InputField2ErrowIndex++;
|
||
if (tMP_InputField2ErrowIndex >= 3)
|
||
{
|
||
tMP_InputField2.text = tMP_InputField2Value;
|
||
tMP_InputField2.DeactivateInputField();
|
||
tMP_InputField2.readOnly = true;
|
||
CheackAllInputField();
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
|
||
errowTip.gameObject.SetActive(true);
|
||
tMP_InputField2.text = string.Empty;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void CheacktMP_InputField3String(string userInput)
|
||
{
|
||
if (userInput == tMP_InputField3Value)
|
||
{
|
||
tMP_InputField3.text = tMP_InputField3Value;
|
||
tMP_InputField3.DeactivateInputField();
|
||
tMP_InputField3.readOnly = true; CheackAllInputField();
|
||
}
|
||
else
|
||
{
|
||
tMP_InputField3ErrowIndex++;
|
||
if (tMP_InputField3ErrowIndex >= 3)
|
||
{
|
||
tMP_InputField3.text = tMP_InputField3Value;
|
||
tMP_InputField3.DeactivateInputField();
|
||
tMP_InputField3.readOnly = true;
|
||
CheackAllInputField();
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
|
||
errowTip.gameObject.SetActive(true);
|
||
tMP_InputField3.text = string.Empty;
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 输入最大值
|
||
/// </summary>
|
||
/// <param name="userInput"></param>
|
||
private void CheckInputMax(string userInput)
|
||
{
|
||
var v = targetMax[CurrentInputIndex].ToString();
|
||
if (v != userInput)
|
||
{
|
||
//第3次,填入正确答案
|
||
if (errowIntMax >= 3)
|
||
{
|
||
|
||
InputFieldmax.text = targetMax[CurrentInputIndex].ToString();
|
||
InputFieldmax.DeactivateInputField();
|
||
InputFieldmax.readOnly = true;
|
||
Invoke("SetNextInput", 2f);
|
||
return;
|
||
}
|
||
errowIntMax++;
|
||
errowTip.gameObject.SetActive(true);
|
||
InputFieldmax.text = string.Empty;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
//正确++
|
||
else
|
||
{
|
||
Debug.Log("填写数值正确");
|
||
userInput = targetMax.ToString();
|
||
SetNextInput();
|
||
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 输入最小值
|
||
/// </summary>
|
||
/// <param name="userInput"></param>
|
||
private void CheckInputMin(string userInput)
|
||
{
|
||
|
||
var v = targetMin[CurrentInputIndex].ToString();
|
||
if (v != userInput)
|
||
{
|
||
//第四次,填入正确答案
|
||
if (errowIntMin >= 3)
|
||
{
|
||
|
||
InputFieldmin.text = targetMin[CurrentInputIndex].ToString();
|
||
InputFieldmin.DeactivateInputField();
|
||
InputFieldmin.readOnly = true;
|
||
|
||
Invoke("SetNextInput", 2f);
|
||
return;
|
||
}
|
||
errowIntMin++;
|
||
errowTip.gameObject.SetActive(true);
|
||
InputFieldmin.text = string.Empty;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
//正确++
|
||
else
|
||
{
|
||
Debug.Log("填写数值正确");
|
||
userInput = targetMax.ToString();
|
||
SetNextInput();
|
||
|
||
}
|
||
}
|
||
protected override void OnShow()
|
||
{
|
||
}
|
||
|
||
protected override void OnHide()
|
||
{
|
||
StringEventSystem.Global.Send("InputUI使用结束");
|
||
}
|
||
|
||
protected override void OnClose()
|
||
{
|
||
}
|
||
|
||
private void SetNextInput()
|
||
{
|
||
if (InputFieldmax.text == targetMax[CurrentInputIndex].ToString() && InputFieldmin.text == targetMin[CurrentInputIndex].ToString())
|
||
{
|
||
//InputFieldmax.ActivateInputField();
|
||
//InputFieldmin.ActivateInputField();
|
||
//重置
|
||
errowTip.gameObject.SetActive(false);
|
||
errowIntMax = 0;
|
||
errowIntMin = 0;
|
||
|
||
InputFieldmax.readOnly = false;
|
||
InputFieldmin.readOnly = false;
|
||
|
||
|
||
InputFieldmax.text = string.Empty;
|
||
InputFieldmin.text = string.Empty;
|
||
|
||
|
||
|
||
|
||
CurrentInputIndex++;
|
||
if (CurrentInputIndex < images.Length)
|
||
{
|
||
|
||
// 先递增索引
|
||
|
||
foreach (var item in images)
|
||
{
|
||
item.gameObject.SetActive(false);
|
||
}
|
||
images[CurrentInputIndex].gameObject.SetActive(true);
|
||
}
|
||
else
|
||
{
|
||
foreach (var item in images)
|
||
{
|
||
item.gameObject.SetActive(false);
|
||
}
|
||
ZheSheInput.gameObject.SetActive(true);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|