备份CatanBuilding瘦身独立工程
This commit is contained in:
90
Assets/Scripts/UI/Setting/ToggleSwitch.cs
Normal file
90
Assets/Scripts/UI/Setting/ToggleSwitch.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user