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