46 lines
		
	
	
		
			975 B
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			975 B
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| using UnityEngine.UI;
 | |
| 
 | |
| [RequireComponent(typeof(Button))]
 | |
| public class UIToggleSwap : MonoBehaviour
 | |
| {
 | |
|     public event Action<bool> OnSwitch;
 | |
| 
 | |
|     public bool IsOn
 | |
|     {
 | |
|         get
 | |
|         {
 | |
|             return mIsOn;
 | |
|         }
 | |
|         set
 | |
|         {
 | |
|             mIsOn = value;
 | |
|             if (mSignOn != null) mSignOn.SetActive(mIsOn);
 | |
|             if (mSignOff != null) mSignOff.SetActive(!mIsOn);
 | |
| 
 | |
|             OnSwitch?.Invoke(mIsOn);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [SerializeField] GameObject mSignOn;
 | |
|     [SerializeField] GameObject mSignOff;
 | |
|     [SerializeField] AudioClipType mClickSound = AudioClipType.None;
 | |
| 
 | |
|     private Button mBtnClick;
 | |
|     private bool mIsOn;
 | |
| 
 | |
|     private void Awake()
 | |
|     {
 | |
|         mBtnClick = GetComponent<Button>();
 | |
|         UIUtils.BindBtn(mBtnClick, OnClick);
 | |
|     }
 | |
| 
 | |
|     private void OnClick()
 | |
|     {
 | |
|         IsOn = !IsOn;
 | |
| 
 | |
|         AudioManager.Instance.PlaySound(mClickSound);
 | |
|     }
 | |
| } |