toggle封装

这篇具有很好参考价值的文章主要介绍了toggle封装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using static PerformanceAdjusting;
//using TMPro;
//using UIFramework;
//using System;
//using DG.Tweening;
//using UniRx;

public class ToggleController
{
private List _toggles;
private List _text;
private int _lastIndex;

public ToggleController(List<Toggle> toggles)
{
    _toggles = toggles;
    _lastIndex = 0;
}
public void AddListener(FunctionID id)
{
    for (int i = 0; i < _toggles.Count; i++)
    {
        ToggleID j = (ToggleID)i;
        _toggles[i].onValueChanged.AddListener((bool isOn) => 
        {
            // 发送消息
            SuperSportNative.SetInt((int)id, DataCenter.toggleMapping[id][j]);
            // 切换元素状态 文本字体颜色
            HandleToggle(j);
        });
    }
}

private void HandleToggle(ToggleID index)
{
    //foreach (Text txt in _toggles)
    //{
    //}
}

}

class SuperSportNative
{
public static void SetInt(int id, int param)
{

}

}

class DataCenter
{
public static Dictionary<FunctionID, Dictionary<ToggleID, int>> toggleMapping =
new Dictionary<FunctionID, Dictionary<ToggleID, int>>
{
{ FunctionID.ID1, new Dictionary<ToggleID, int>
{
{ ToggleID.Toggle_0, 5 },
{ ToggleID.Toggle_1, 6 },
{ ToggleID.Toggle_2, 7 },
}
},
{ FunctionID.ID2, new Dictionary<ToggleID, int>
{
{ ToggleID.Toggle_0, 3 },
{ ToggleID.Toggle_1, 6 },
{ ToggleID.Toggle_2, 1 },
}
}
};
}

public class PerformanceAdjusting : MonoBehaviour
{
[SerializeField] private List _performance1;
[SerializeField] private List _performance2;

private ToggleController _controller1;
private ToggleController _controller2;

public enum FunctionID
{
    ID1,
    ID2
}

public enum ToggleID
{
    Toggle_0,
    Toggle_1,
    Toggle_2,
    Toggle_3,
    Toggle_4
}

public Dictionary<FunctionID, Dictionary<ToggleID, int>> toggleMapping;

private void Awake()
{
    toggleMapping = new Dictionary<FunctionID, Dictionary<ToggleID, int>>
    {
        { FunctionID.ID1, new Dictionary<ToggleID, int>
            {
                { ToggleID.Toggle_0, 5 },
                { ToggleID.Toggle_1, 6 },
                { ToggleID.Toggle_2, 7 },
            }
        },
        { FunctionID.ID2, new Dictionary<ToggleID, int>
            {
                { ToggleID.Toggle_0, 3 },
                { ToggleID.Toggle_1, 6 },
                { ToggleID.Toggle_2, 1 },
            }
        }
    };

    _controller1 = new ToggleController(_performance1);
    _controller2 = new ToggleController(_performance2);

    _controller1.AddListener(FunctionID.ID1);
}

 性能调节
//[SerializeField]
//private GameObject m_PerformanceAdjusting;
 性能调节 前后轴输出功率Toggle
//[SerializeField]
//private List<Toggle> m_FrontRearAxleOutputPowerToggles;
记录当前前后轴输出功率按钮位置
//private int m_FrontRearAxleOutputPowerIndex;
 性能调节 前后轴输出功率比文本显示
//[SerializeField]
//private TextMeshProUGUI m_FrontRearAxleOutputPowerTxt;
//private string txt_Ratio;

 性能调节 动力响应Toggle
//[SerializeField]
//private List<Toggle> m_DynamicResponseToggles;
记录当前动力响应按钮位置
//private int m_DynamicResponseIndex;
 性能调节 动力响应Text
//[SerializeField]
//private List<TextMeshProUGUI> m_DynamicResponseTxts;

 性能调节 制动反馈Toggle
//[SerializeField]
//private List<Toggle> m_BrakeFeedbackToggles;
记录当前按钮位置
//private int m_BrakeFeedbackIndex;
 性能调节 制动反馈Text
//[SerializeField]
//private List<TextMeshProUGUI> m_BrakeFeedbackTxts;

 性能调节 转向手感Toggle
//[SerializeField]
//private List<Toggle> m_SteeringFeelToggles;
记录当前转向手感按钮位置
//private int m_SteeringFeelIndex;
 性能调节 转向手感Text
//[SerializeField]
//private List<TextMeshProUGUI> m_SteeringFeelTxts;

 性能调节 悬架阻尼Toggle
//[SerializeField]
//private List<Toggle> m_SuspensionDampingToggles;
记录当前按钮位置
//private int m_SuspensionDampingIndex;
 性能调节 悬架阻尼Text
//[SerializeField]
//private List<TextMeshProUGUI> m_SuspensionDampingTxts;

 性能调节 车身稳定系统Toggle
//[SerializeField]
//private List<Toggle> m_BodyStabilizationSystemToggles;
记录当前按钮位置
//private int m_BodyStabilizationSystemIndex;
 性能调节 车身稳定系统Text
//[SerializeField]
//private List<TextMeshProUGUI> m_BodyStabilizationSystemTxts;

 性能调节 能量回收系统Toggle
//[SerializeField]
//private List<Toggle> m_EnergyRecoverySystemsToggles;
记录当前按钮位置
//private int m_EnergyRecoverySystemsIndex;
 性能调节 能量回收系统Text
//[SerializeField]
//private List<TextMeshProUGUI> m_EnergyRecoverySystemsTxts;

 性能调节 超强冷却系统Toggle
//[SerializeField]
//private List<Toggle> m_SuperCoolingSystemToggles;
记录当前按钮位置
//private int m_SuperCoolingSystemIndex;
 性能调节 超强冷却系统Text
//[SerializeField]
//private List<TextMeshProUGUI> m_SuperCoolingSystemTxts;

 性能调节 恢复为大师调校Button
//[SerializeField]
//private Button m_ReturnToMasterTuningBtn;

 性能调节 弹窗其他区域点击关闭弹窗 Mask Button
//[SerializeField]
//private Button m_MaskCloseBtn;

//private static readonly string TAG = "PerformanceAdjusting";

//void Start()
//{
//    //动态添加监听 前后轴输出功率
//    for (int i = 0; i < m_FrontRearAxleOutputPowerToggles.Count; i++)
//    {-
//        int index = i;
//        m_FrontRearAxleOutputPowerToggles[i].onValueChanged.AddListener((bool isOn) => { FrontRearAxleOutputPowerToggleAction(m_FrontRearAxleOutputPowerToggles[index], isOn, index); });
//    }
//    //动态添加监听 动力响应、转向手感、悬架阻尼、车身稳定系统
//    for (int i = 0; i < m_DynamicResponseToggles.Count; i++)
//    {
//        int index = i;
//        m_DynamicResponseToggles[i].onValueChanged.AddListener((bool isOn) => { AdjustingToggleAction(m_DynamicResponseToggles[index], isOn, index, m_DynamicResponseTxts, Convert.ToInt32(SignalEnum.performanceadjusting_dynamicresponse), index + 1, m_DynamicResponseIndex); });
//        m_SteeringFeelToggles[i].onValueChanged.AddListener((bool isOn) => { AdjustingToggleAction(m_SteeringFeelToggles[index], isOn, index, m_SteeringFeelTxts, Convert.ToInt32(SignalEnum.performanceadjusting_steeringfeel), index + 1, m_SteeringFeelIndex); });
//        m_SuspensionDampingToggles[i].onValueChanged.AddListener((bool isOn) => { AdjustingToggleAction(m_SuspensionDampingToggles[index], isOn, index, m_SuspensionDampingTxts, Convert.ToInt32(SignalEnum.performanceadjusting_suspensiondamping), index + 1, m_SuspensionDampingIndex); });
//        m_BodyStabilizationSystemToggles[i].onValueChanged.AddListener((bool isOn) => { AdjustingToggleAction(m_BodyStabilizationSystemToggles[index], isOn, index, m_BodyStabilizationSystemTxts, Convert.ToInt32(SignalEnum.performanceadjusting_esp), index, m_BodyStabilizationSystemIndex); });
//    }
//    //动态添加监听 制动反馈
//    for (int i = 0; i < m_BrakeFeedbackToggles.Count; i++)
//    {
//        int index = i;
//        m_BrakeFeedbackToggles[i].onValueChanged.AddListener((bool isOn) => { BrakeFeedbackToggleAction(m_BrakeFeedbackToggles[index], isOn, index, m_BrakeFeedbackTxts, Convert.ToInt32(SignalEnum.performanceadjusting_brakefeedback), m_BrakeFeedbackIndex); });
//    }
//    //动态添加监听 能量回收系统
//    for (int i = 0; i < m_EnergyRecoverySystemsToggles.Count; i++)
//    {
//        int index = i;
//        m_EnergyRecoverySystemsToggles[i].onValueChanged.AddListener((bool isOn) => { EnergyRecoverySystemsToggleAction(m_EnergyRecoverySystemsToggles[index], isOn, index, m_EnergyRecoverySystemsTxts, Convert.ToInt32(SignalEnum.performanceadjusting_energyrecoverysystems), m_EnergyRecoverySystemsIndex); });
//    }
//    //动态添加监听 超强冷却系统
//    for (int i = 0; i < m_SuperCoolingSystemToggles.Count; i++)
//    {
//        int index = i;
//        m_SuperCoolingSystemToggles[i].onValueChanged.AddListener((bool isOn) => { SuperCoolingSystemToggleAction(m_SuperCoolingSystemToggles[index], isOn, index, m_SuperCoolingSystemTxts, Convert.ToInt32(SignalEnum.performanceadjusting_supercoolingsystem), m_SuperCoolingSystemIndex); });
//    }
//    //点击恢复为大师调校按钮
//    m_ReturnToMasterTuningBtn.onClick.AddListener(() =>
//    {
//        Log.I(TAG, "m_ReturnToMasterTuningBtn Button Clicked!");
//        AliOSJSNI.CafCallJS("clickEngine");
//    });
//    //点击弹窗以外区域关闭当前弹窗
//    m_MaskCloseBtn.onClick.AddListener(() =>
//    {
//        Log.I(TAG, "m_MaskCloseBtn Button Clicked!");
//        AliOSJSNI.CafCallJS("clickMaskCloseBtn");
//        m_PerformanceAdjusting.SetActive(false);
//    });
//}
/ <summary>
/ 性能调节 前后轴输出功率按钮监听
/ </summary>
/ <param name="toggle">待点击按钮</param>
/ <param name="isOn">是否点击</param>
/ <param name="index">选中第几个</param>
/ <param name="check">选中后保存选中结果</param>
//void FrontRearAxleOutputPowerToggleAction(Toggle toggle, bool isOn, int index)
//{
//    if (isOn)
//    {
//        TxtFrontRearAxleOutputPower(index);
//        m_FrontRearAxleOutputPowerTxt.text = txt_Ratio;
//        Debug.Log("当前后轴:" + m_FrontRearAxleOutputPowerIndex);
//        EAfterTwoSeconds(m_FrontRearAxleOutputPowerToggles,index);
//    }
//}
/ <summary>
/ 性能调节 前后轴输出功率比分数值
/ </summary>
/ <param name="index">选中第几个按钮</param>
//private void TxtFrontRearAxleOutputPower(int index)
//{
//    switch (index)
//    {
//        case 0:
//            txt_Ratio = "0 / 100";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 100);
//            m_FrontRearAxleOutputPowerIndex = 100;
//            break;
//        case 1:
//            txt_Ratio = "10 / 90";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 90);
//            m_FrontRearAxleOutputPowerIndex = 90;
//            break;
//        case 2:
//            txt_Ratio = "20 / 80";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 80);
//            m_FrontRearAxleOutputPowerIndex = 80;
//            break;
//        case 3:
//            txt_Ratio = "30 / 70";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 70);
//            m_FrontRearAxleOutputPowerIndex = 70;
//            break;
//        case 4:
//            txt_Ratio = "40 / 60";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 60);
//            m_FrontRearAxleOutputPowerIndex = 60;
//            break;
//        case 5:
//            txt_Ratio = "50 / 50";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 50);
//            m_FrontRearAxleOutputPowerIndex = 50;
//            break;
//        case 6:
//            txt_Ratio = "60 / 40";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 40);
//            m_FrontRearAxleOutputPowerIndex = 40;
//            break;
//        case 7:
//            txt_Ratio = "70 / 30";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 30);
//            m_FrontRearAxleOutputPowerIndex = 30;
//            break;
//        case 8:
//            txt_Ratio = "80 / 20";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 20);
//            m_FrontRearAxleOutputPowerIndex = 20;
//            break;
//        case 9:
//            txt_Ratio = "90 / 10";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 10);
//            m_FrontRearAxleOutputPowerIndex = 10;
//            break;
//        case 10:
//            txt_Ratio = "100 / 0";
//            SuperSportNative.SetInt(Convert.ToInt32(SignalEnum.performanceadjusting_frontrearaxleoutputpower), 1);
//            m_FrontRearAxleOutputPowerIndex = 1;
//            break;
//        default:
//            break;
//    }
//}
/ <summary>
/ 调节后 动力响应、转向手感、悬架阻尼、车身稳定系统 对应文本变化
/ </summary>
/ <param name="toggle">待点击按钮</param>
/ <param name="isOn">是否点击</param>
/ <param name="index">选中第几个</param>
/ <param name="textMeshProUGUIs">具体哪一个调节的文本</param>
/ <param name="id">下发信号对应的id号</param>
/ <param name="param">下发信号对应的信号值</param>
/ <param name="check">选中后保存选中结果</param>
//void AdjustingToggleAction(Toggle toggle, bool isOn, int index, List<TextMeshProUGUI> textMeshProUGUIs, int id, int param, int check)
//{
//    if (isOn)
//    {
//        if (m_BodyStabilizationSystemToggles[0].isOn == true || m_BodyStabilizationSystemToggles[1].isOn == true)
//        {
//            Debug.Log("警告弹框!");
//            //m_ESPWarningPopUpWindow = AssetDatabase.LoadAssetAtPath("Assets/UIFramework/Prefab/ESPWarningPopUpWindow.prefab", typeof(GameObject)) as GameObject;
//            //m_ESPWarningPopUpWindow = Instantiate(m_ESPWarningPopUpWindow);
//            //m_BodyStabilizationSystemToggles[0].SetIsOnWithoutNotify(false);
//            //m_BodyStabilizationSystemToggles[1].SetIsOnWithoutNotify(false);
//            //m_BodyStabilizationSystemToggles[2].isOn = true;
//            UIRoot.Show<ESPWarningPopUpWindow>();
//        }
//        switch (index)
//        {
//            case 0:
//                textMeshProUGUIs[0].fontSize = 28;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[2].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 128);
//                check = index;
//                SuperSportNative.SetInt(id, param);
//                break;
//            case 1:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 28;
//                textMeshProUGUIs[2].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 128);
//                SuperSportNative.SetInt(id, param);
//                break;
//            case 2:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[2].fontSize = 28;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 255);
//                SuperSportNative.SetInt(id, param);
//                break;
//            default:
//                break;
//        }
//    }
//}
/ <summary>
/ 制动反馈 对应文本变化
/ </summary>
/ <param name="toggle">待点击按钮</param>
/ <param name="isOn">是否点击</param>
/ <param name="index">选中第几个</param>
/ <param name="textMeshProUGUIs">具体哪一个调节的文本</param>
/ <param name="id">下发信号对应的id号</param>
/ <param name="check">选中后保存选中结果</param>
//void BrakeFeedbackToggleAction(Toggle toggle, bool isOn, int index, List<TextMeshProUGUI> textMeshProUGUIs, int id, int check)
//{
//    if (isOn)
//    {
//        switch (index)
//        {
//            case 0:
//                textMeshProUGUIs[0].fontSize = 28;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[2].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 128);
//                SuperSportNative.SetInt(id, 1);
//                break;
//            case 1:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 28;
//                textMeshProUGUIs[2].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 128);
//                SuperSportNative.SetInt(id, 0);
//                break;
//            case 2:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[2].fontSize = 28;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 255);
//                SuperSportNative.SetInt(id, 2);
//                break;
//            default:
//                break;
//        }
//    }
//}

/ <summary>
/ 能量回收系统
/ </summary>
/ <param name="toggle">待点击按钮</param>
/ <param name="isOn">是否点击</param>
/ <param name="index">选中第几个</param>
/ <param name="textMeshProUGUIs">具体哪一个调节的文本</param>
/ <param name="id">下发信号对应的id号</param>
/ <param name="check">选中后保存选中结果</param>
//void EnergyRecoverySystemsToggleAction(Toggle toggle, bool isOn, int index, List<TextMeshProUGUI> textMeshProUGUIs, int id, int check)
//{
//    if (isOn)
//    {
//        switch (index)
//        {
//            case 0:
//                textMeshProUGUIs[0].fontSize = 28;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[2].fontSize = 22;
//                textMeshProUGUIs[3].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[3].color = new Color32(255, 255, 255, 128);
//                SuperSportNative.SetInt(id, 5);
//                break;
//            case 1:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 28;
//                textMeshProUGUIs[2].fontSize = 22;
//                textMeshProUGUIs[3].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[3].color = new Color32(255, 255, 255, 128);
//                SuperSportNative.SetInt(id, 0);
//                break;
//            case 2:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[2].fontSize = 28;
//                textMeshProUGUIs[3].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[3].color = new Color32(255, 255, 255, 128);
//                SuperSportNative.SetInt(id, 1);
//                break;
//            case 3:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[2].fontSize = 22;
//                textMeshProUGUIs[3].fontSize = 28;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[2].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[3].color = new Color32(255, 255, 255, 255);
//                SuperSportNative.SetInt(id, 2);
//                break;
//            default:
//                break;
//        }
//    }
//}
/ <summary>
/ 超强冷却系统
/ </summary>
/ <param name="toggle">待点击按钮</param>
/ <param name="isOn">是否点击</param>
/ <param name="index">选中第几个</param>
/ <param name="textMeshProUGUIs">具体哪一个调节的文本</param>
/ <param name="id">下发信号对应的id号</param>
/ <param name="check">选中后保存选中结果</param>
//void SuperCoolingSystemToggleAction(Toggle toggle, bool isOn, int index, List<TextMeshProUGUI> textMeshProUGUIs, int id, int check)
//{
//    if (isOn)
//    {
//        switch (index)
//        {
//            case 0:
//                textMeshProUGUIs[0].fontSize = 28;
//                textMeshProUGUIs[1].fontSize = 22;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 255);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 128);
//                SuperSportNative.SetInt(id, 1);
//                break;
//            case 1:
//                textMeshProUGUIs[0].fontSize = 22;
//                textMeshProUGUIs[1].fontSize = 28;
//                textMeshProUGUIs[0].color = new Color32(255, 255, 255, 128);
//                textMeshProUGUIs[1].color = new Color32(255, 255, 255, 255);
//                SuperSportNative.SetInt(id, 0);
//                break;
//            default:
//                break;
//        }
//    }
//}

两秒之后再次获取,如果值不相等则按钮重置
//void EAfterTwoSeconds(List<Toggle> toggle,int index)
//{
//    DOTween.Kill("EAfterTwoSeconds");
//    float timeCount = 0;
//    DOTween.To(() => timeCount, a => timeCount = a, 1, 2).OnComplete(() =>
//    {
//        DataCenter.FrontRearAxleOutputPower.Subscribe(i =>
//        {
//            Debug.Log("延迟2秒:" + m_FrontRearAxleOutputPowerIndex);
//            if (m_FrontRearAxleOutputPowerIndex == i)
//            {
//                toggle[index].isOn = true;
//            }
//            else
//            {
//                Debug.Log("不相等:" + m_FrontRearAxleOutputPowerIndex);
//                toggle[index].transform.parent.GetComponent<ToggleGroup>().SetAllTogglesOff();
//                toggle[index].isOn = false;
//            }
//        }).AddTo(this);
//    }).SetId("EAfterTwoSeconds");
//}

}文章来源地址https://www.toymoban.com/news/detail-823185.html

到了这里,关于toggle封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity-UGUI控件全面解析】| Toggle 开关组件详解

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发

    2024年02月04日
    浏览(48)
  • Unity UGUI的Toggle(复选框)组件的介绍及使用

    Toggle(复选框)是Unity UGUI中的一个常用组件,用于实现复选框的功能。它可以被选中或取消选中,并且可以代码通过其制控状态。 组Toggle件由两个部分组成:背景记标和。景背用于显示复选框的外观表示于用记标,复选框的选中状态。当被件组Toggle点击时,它会自动切换选

    2024年02月11日
    浏览(46)
  • 【虚拟仿真】Unity3D中实现3DUI,并且实现Button、InputField、Toggle等事件绑定

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 最近在项目中需要用到3DUI的展示,之前一般会用TextMeshPro进行展示: 但是,后面又需要添加按钮、Toggle等,就捣鼓了

    2024年02月22日
    浏览(68)
  • 【Unity之IMGUI脚本封装】—自定义常用控件的封装(即拿即用)

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :UnityUI篇实战 UML类图 封装代码: 按钮封装代码 封装代码 UML类图 封装代码 封装代码 封装代码 GUI.DrawTextrrue 没有自定义样式的重载 封装代

    2024年02月16日
    浏览(45)
  • 【Unity之IMGUI脚本封装】—编译模式下控件可视化及其封装

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :UnityUI篇实战 缺点1:无法在编译过程进行可视化调整 缺点2:无法分辨率自适应 此图可忽略 UML类图 性能优化代码 完整代码: 按钮封装代

    2024年02月15日
    浏览(61)
  • 【Unity之IMGUI脚本封装】—位置信息类和控件基类的封装

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : 缺点1:无法在编译过程进行可视化调整 缺点2:无法分辨率自适应 作用:让控件根据调整对齐 最终代码 特点: 类是抽象类:原因基类

    2024年02月17日
    浏览(41)
  • Unity基础 - 封装一个好用的事件系统

    在游戏开发过程中,我们会大量使用事件系统。很多时候,比起直接调用对象组件的方法,使用事件触发将很大程度上降低系统的耦合度,从而实现更为优雅的系统设计。 封装一个好用的事件系统将对我们的开发起到很大的帮助。 本文将基于Unity提供的ScriptableObject和UnityEv

    2024年02月02日
    浏览(45)
  • 【Unity+MySQL】实现注册登录系统(封装版)

    接着 上篇文章的注册登录系统,这篇文章将MySQL相关操作封装,在Unity交互脚本中直接调用封装的方法。 编写一个DBConnector脚本,封装MySQL中常用的操作,如连接数据库、关闭数据库、查询数据库、除查询外的插入、更新、删除等操作。 编写一个User脚本用于封装用户注册、登

    2024年02月05日
    浏览(48)
  • Unity使用GUI封装一个UI系统

    Untiy中设计UI不会使用GUI,因为它必须要运行代码才可以看出UI的布局结果,而且GUI不支持屏幕分辨率自适应,所以一般会使用UGUI等设计,但是为了搞清楚高级UI的原理,通过GUI去设计一个类似于UGUI的工具是个很好的学习方法。所以本文属于是脱裤子放屁,但是只有脱下裤子把

    2024年02月04日
    浏览(45)
  • 【unity之IMGUI实践】敌方逻辑封装实现【六】

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unityUI专题篇 🅰️ 😶‍🌫️:步骤实现 1.炮台的行为逻辑封装:旋转,触发检测,发射炮弹及特效 2.检测玩家后自动瞄准攻击 3.玩家扣

    2024年02月15日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包