Files
MinFt/Client/Assets/Scripts/UI/Setting/BtnSwitch.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

63 lines
1.5 KiB
C#

using System;
using DG.Tweening;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
public class BtnSwitch : MonoBehaviour
{
Transform btn_on;
Button btn_setting;
public UnityEvent<bool> onToggle;
bool isOn;
public float movePosX = 60;
private void Awake()
{
btn_on = transform.Find("Scrollbar");
btn_setting = GetComponent<Button>();
}
private void OnEnable()
{
btn_setting.onClick.AddListener(() => { OnToggle(!isOn); });
}
void OnToggle(bool _isOn)
{
isOn = _isOn;
btn_on.transform.DOKill();
btn_on.transform.DOLocalMoveX(isOn ? movePosX : -movePosX, 0.2f);
onToggle?.Invoke(isOn);
}
public void SetState(bool _isOn)
{
isOn = _isOn;
btn_on.transform.localPosition = new Vector3(isOn ? movePosX : -movePosX, 0, 0);
}
public void SetStateSmooth(bool _isOn)
{
isOn = _isOn;
btn_on.transform.DOKill();
btn_on.transform.DOLocalMoveX(isOn ? movePosX : -movePosX, 0.3f);
}
public void OverrideListener(Action<bool> action)
{
btn_setting.onClick.RemoveAllListeners();
btn_setting.onClick.AddListener(() => { action(isOn); });
}
void OnDestroy()
{
btn_setting.onClick.RemoveAllListeners();
}
public void RemoveAndReAddOnListener()
{
btn_setting.onClick.RemoveAllListeners();
btn_setting.onClick.AddListener(() => { OnToggle(!isOn); });
}
}