| 
									
										
										
										
											2022-02-08 12:24:48 +00:00
										 |  |  |  | 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; | 
					
						
							| 
									
										
										
										
											2022-02-16 09:00:22 +00:00
										 |  |  |  |     [SerializeField] AudioClipType mClickSound = AudioClipType.None; | 
					
						
							| 
									
										
										
										
											2022-02-08 12:24:48 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     private Button mBtnClick; | 
					
						
							|  |  |  |  |     private bool mIsOn; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void Awake() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mBtnClick = GetComponent<Button>(); | 
					
						
							|  |  |  |  |         mBtnClick.onClick.AddListener(OnClick); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void OnClick() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         IsOn = !IsOn; | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         AudioManager.Instance.PlaySound(mClickSound); | 
					
						
							| 
									
										
										
										
											2022-02-08 12:24:48 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | } |