Files
MinFt/Client/Assets/Scripts/UI/Setting/ToggleSwitch.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

91 lines
2.2 KiB
C#

using DG.Tweening;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class ToggleSwitch : MonoBehaviour
{
public List<ToggleWithNum> ToggleGroup=new();
public List<Transform> ToggleIamges=new();
public UnityAction<int> ChannalToggleChange;
private void Awake()
{
var toggles = GetComponentsInChildren<ToggleWithNum>();
for (int i = 0; i < toggles.Length; i++)
{
ToggleGroup.Add(toggles[i]);
toggles[i].ChannalToggleChange += OnChangeToggle;
}
ToggleIamges.Add(transform.Find("tab_selected_1"));
ToggleIamges.Add(transform.Find("tab_selected_2"));
ToggleIamges.Add(transform.Find("tab_selected_3"));
ToggleIamges.Add(transform.Find("tab_selected_4"));
}
public void HideFromIndex(int index)
{
if (index == -1)
{
foreach(ToggleWithNum toggle in ToggleGroup)
{
toggle.gameObject.SetActive(true);
}
return;
}
for (int i = 0; i < ToggleGroup.Count; i++)
{
ToggleGroup[i].gameObject.SetActive(i < index);
}
}
public void SetState(int num)
{
for (int i = 0; i < ToggleGroup.Count; i++)
{
if (i == num)
{
ToggleIamges[i].gameObject.SetActive(true);
}
else
{
ToggleIamges[i].gameObject.SetActive(false);
ToggleGroup[i].Toggle.SetIsOnWithoutNotify(false);
}
}
}
public void OnChangeToggle(bool isOn,int num)
{
ChannalToggleChange?.Invoke(num);
for (int i=0; i<ToggleGroup.Count; i++)
{
if(i==num)
{
ToggleIamges[num].gameObject.SetActive(isOn);
ToggleIamges[num].localScale=Vector3.zero;
ToggleIamges[num].DOKill();
ToggleIamges[num].DOScale(1f, 0.1f);
}
else
{
ToggleIamges[i].gameObject.SetActive(!isOn);
ToggleGroup[i].Toggle.isOn = !isOn;
}
}
}
}