Unity制作多选题

核心逻辑

多选题选项中,正确的项全得选上,错误的项都不选,如果前两步都是正确的,则答案正确    

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

结构与代码

里面有判分和跳转逻辑,使用时,如果用不到,就剔除掉
导出包,网盘地址:https://pan.baidu.com/s/1wrsJMSeGKNUjBq6F33vsXA 密码:aaaa
在这里插入图片描述
在这里插入图片描述

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ChooseLogic : MonoBehaviour
{
    
    public string lastQuesName;
    public string nextQuesName;
    #region 选择部分
    //private Toggle togA, togB, togC, togD, togE;
    public Toggle[] rightOption;
    private bool rightOptionResult;
    public Toggle[] wrongOption;
    private bool wrongOptionResult;
    [SerializeField]
    private int singleQuesScore=10;
    void Start()
    {
        //togA = transform.Find("ToggleA").GetComponent<Toggle>();
        //togB = transform.Find("ToggleB").GetComponent<Toggle>();
        //togC = transform.Find("ToggleC").GetComponent<Toggle>();
        //togD = transform.Find("ToggleD").GetComponent<Toggle>();
        //togE = transform.Find("ToggleE").GetComponent<Toggle>();
        transform.Find("SubmitBtn").GetComponent<Button>().onClick.AddListener(ClickSubmitBtn_T);
        //Color x = new Color();
    }

    
    void Update()
    {
        
    }
    //第题
    public void ClickSubmitBtn_T()
    {
        rightOptionResult = JudgeRightArray();
        wrongOptionResult = JudgeWrongArray();
        if (rightOptionResult==true&&wrongOptionResult==true)
        {
            Debug.Log("正确");
            switch(gameObject.name)
            {
                case "T1":
                    ScoreLogic.score4_01 =singleQuesScore;
                    //Debug.Log(ScoreLogic.score4_01);
                    break;
                case "T2":
                    ScoreLogic.score4_02 = singleQuesScore;
                    //Debug.Log(ScoreLogic.score4_02);
                    break;
                case "T3":
                    ScoreLogic.score4_03 = singleQuesScore;
                    //Debug.Log(ScoreLogic.score4_03);
                    break;
                case "T4":
                    ScoreLogic.score4_04 = singleQuesScore;
                    break;
                case "T5":
                    ScoreLogic.score4_05 = singleQuesScore;
                    break;
                case "T6":
                    ScoreLogic.score4_06 = singleQuesScore;
                    break;
                case "T7":
                    ScoreLogic.score4_07 = singleQuesScore;
                    break;
                case "T8":
                    ScoreLogic.score4_08 = singleQuesScore;
                    break;
                case "T9":
                    ScoreLogic.score4_09 = singleQuesScore;
                    break;
                case "T10":
                    ScoreLogic.score4_10 = singleQuesScore;
                    break;
                case "T11":
                    ScoreLogic.score4_11 = singleQuesScore;
                    break;

            }
        }
        else
        {
            Debug.Log("错误");
            switch (gameObject.name)
            {
                case "T1":
                    ScoreLogic.score4_01 = 0;
                    //Debug.Log(ScoreLogic.score4_01);
                    break;
                case "T2":
                    ScoreLogic.score4_02 = 0;
                    //Debug.Log(ScoreLogic.score4_02);
                    break;
                case "T3":
                    ScoreLogic.score4_03 = 0;
                    //Debug.Log(ScoreLogic.score4_03);
                    break;
                case "T4":
                    ScoreLogic.score4_04 = 0;
                    break;
                case "T5":
                    ScoreLogic.score4_05 = 0;
                    break;
                case "T6":
                    ScoreLogic.score4_06 = 0;
                    break;
                case "T7":
                    ScoreLogic.score4_07 = 0;
                    break;
                case "T8":
                    ScoreLogic.score4_08 = 0;
                    break;
                case "T9":
                    ScoreLogic.score4_09 = 0;
                    break;
                case "T10":
                    ScoreLogic.score4_10 = 0;
                    break;
                case "T11":
                    ScoreLogic.score4_11 = 0;
                    break;

            }
        }
        
    }
    public bool JudgeRightArray()
    {
        for (int i = 0; i < rightOption.Length; i++)
        {
            if (rightOption[i].isOn == false)
            {
                return false;
            }
            
            //Debug.Log("正确选项的的钩" + rightOption[i].isOn);
        }
        return true;
    }
    public bool JudgeWrongArray()
    {
        for (int i = 0; i < wrongOption.Length; i++)
        {
            if (wrongOption[i].isOn == true)
            {
                return false;
            }

            //Debug.Log("正确选项的的钩" + rightOption[i].isOn);
        }
        return true;
    }
    #endregion



    #region 跳转部分
    /// <summary>
    /// 去“上一题”
    /// </summary>
    public void BackToLastQues()
    {
        //清空本题已经选择的项
        EmptyChoosedOption();

        //"上一题"显示
        GameObject lastQues = GetGOByName(lastQuesName);
        lastQues.SetActive(true);

        //本题隐藏
        transform.gameObject.SetActive(false);
    }
    /// <summary>
    /// 去“下一题”
    /// </summary>
    public void ForwardToNextQues()
    {
        //清空本题已经选择的项
        EmptyChoosedOption();

        //"上一题"显示
        GameObject nextQues = GetGOByName(nextQuesName);
        nextQues.SetActive(true);

        //本题隐藏
        transform.gameObject.SetActive(false);
    }



    //【工具方法】清空本题的选择
    private void EmptyChoosedOption()
    {
        transform.Find("ToggleA").GetComponent<Toggle>().isOn = false;
        transform.Find("ToggleB").GetComponent<Toggle>().isOn = false;
        transform.Find("ToggleC").GetComponent<Toggle>().isOn = false;
        transform.Find("ToggleD").GetComponent<Toggle>().isOn = false;
        transform.Find("ToggleE").GetComponent<Toggle>().isOn = false;
    }



    //【工具方法】通过名字,找到题目GameObject
    private GameObject GetGOByName(string QuesName)
    {
        Transform canvas = transform.Find("/Canvas");
        Transform xQuesTra = canvas.Find(QuesName);
        GameObject xQues = xQuesTra.gameObject;
        return xQues;

    }
    #endregion
}

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值