79 lines
2.7 KiB
C#
79 lines
2.7 KiB
C#
using System;
|
||
using System.Linq;
|
||
using System.Xml.Serialization;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using ZXKFramework;
|
||
namespace DongWuYiXue.DaoNiaoShu
|
||
{
|
||
public class ImgSelectManager : MonoBehaviour
|
||
{
|
||
ImgOption[] imgOptions;
|
||
public ImgOption[] answers;
|
||
|
||
public void Init()
|
||
{
|
||
transform.FindFirst("MaxImage").SetActive(false);
|
||
imgOptions = GetComponentsInChildren<ImgOption>();
|
||
for (int i = 0; i < imgOptions.Length; i++)
|
||
{
|
||
imgOptions[i].Interactable();
|
||
imgOptions[i].UnSelect();
|
||
imgOptions[i].SetNormalColor();
|
||
imgOptions[i].maxAction = MaxImage;
|
||
}
|
||
}
|
||
public bool Check()
|
||
{
|
||
//判断逻辑
|
||
ImgOption[] yourSelect = imgOptions.ToList().FindAll(e => e.isSelect == true).ToArray();
|
||
bool isTrue = AreArraysEqual(yourSelect, answers);
|
||
for (int i = 0; i < answers.Length; i++)
|
||
{
|
||
answers[i].SetRightColor();
|
||
}
|
||
for (int i = 0; i < yourSelect.Length; i++)
|
||
{
|
||
if (!answers.Contains(yourSelect[i]))
|
||
{
|
||
yourSelect[i].SetFalseColor();
|
||
}
|
||
}
|
||
for (int i = 0; i < imgOptions.Length; i++)
|
||
{
|
||
imgOptions[i].UnInteractable();
|
||
}
|
||
return isTrue;
|
||
}
|
||
bool AreArraysEqual(ImgOption[] array1, ImgOption[] array2)
|
||
{
|
||
if (array1 == null && array2 == null) return true; // 如果都为null,返回true
|
||
if (array1 == null || array2 == null) return false; // 如果任一数组为null,返回false
|
||
if (array1.Length != array2.Length) return false; // 如果长度不同,返回false
|
||
for (int i = 0; i < array1.Length; i++)
|
||
{
|
||
if (!array2.Contains(array1[i])) return false;
|
||
}
|
||
return true; // 使用SequenceEqual判断内容是否完全相同
|
||
}
|
||
public string GetYourAnswer()
|
||
{
|
||
string str = "";
|
||
ImgOption[] yourSelect = imgOptions.ToList().FindAll(e => e.isSelect == true).ToArray();
|
||
for (int i = 0; i < yourSelect.Length; i++)
|
||
{
|
||
str += yourSelect[i].GetComponentInChildren<Text>().text + " ";
|
||
}
|
||
if (string.IsNullOrEmpty(str))
|
||
{
|
||
return "用户未作答";
|
||
}
|
||
return str;
|
||
}
|
||
public void MaxImage(Sprite s)
|
||
{
|
||
transform.FindFirst("MaxImage").SetActive(true);
|
||
transform.FindFirst("MaxImage").FindFirst<Image>("Image").sprite = s;
|
||
}
|
||
}
|
||
} |