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;
记录当

相关推荐

  1. toggle封装

    2024-01-25 07:40:02       63 阅读
  2. Unity两组Toggle一一对应关系

    2024-01-25 07:40:02       55 阅读
  3. toggle2秒未响应回弹

    2024-01-25 07:40:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 07:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 07:40:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 07:40:02       82 阅读
  4. Python语言-面向对象

    2024-01-25 07:40:02       91 阅读

热门阅读

  1. SpringBoot-SpringBoot自动配置底层源码解析

    2024-01-25 07:40:02       44 阅读
  2. 使用django-admin来做erp,是否需要使用缓存数据库

    2024-01-25 07:40:02       57 阅读
  3. 数据结构练习3

    2024-01-25 07:40:02       47 阅读
  4. 江苏服务器租用要注意哪些方面?

    2024-01-25 07:40:02       55 阅读
  5. html 粒子效果文字特效

    2024-01-25 07:40:02       60 阅读
  6. Hadoop-MapReduce-源码跟读-客户端篇

    2024-01-25 07:40:02       43 阅读
  7. CentOS 安装 Ruby

    2024-01-25 07:40:02       61 阅读
  8. VSCode Python调试运行:json编写

    2024-01-25 07:40:02       47 阅读