65 lines
1.6 KiB
C#
65 lines
1.6 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
|
|
/// <summary>
|
|
/// Toggle检测
|
|
/// </summary>
|
|
[AddComponentMenu("ToggleController/Toggle检测")]
|
|
public class ToggleController : MonoBehaviour
|
|
{
|
|
private Toggle toggle;
|
|
public bool canEnterToggleValueChanged = true; // 是否能进入 Toggle 值改变方法
|
|
public bool toggleWasOn; // 上一次 Toggle 的状态
|
|
|
|
public UIToCabinet uIToCabinet;
|
|
|
|
private void Start()
|
|
{
|
|
//Debug.Log("版本号 1.1.1");
|
|
toggle = GetComponent<Toggle>();
|
|
toggleWasOn = toggle.isOn; // 初始化 toggleWasOn 变量
|
|
//Debug.Log("版本号 1.1.1");
|
|
}
|
|
|
|
public void OnToggleClicked()
|
|
{
|
|
// 手动检查条件,决定是否可以进入 Toggle 值改变方法
|
|
if (CanEnterToggleValueChanged())
|
|
{
|
|
canEnterToggleValueChanged = true;
|
|
// 修改 Toggle 的值
|
|
toggle.isOn = !toggle.isOn;
|
|
}
|
|
else
|
|
{
|
|
canEnterToggleValueChanged = false;
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
// 在 Update 方法中检测 Toggle 值改变
|
|
if (canEnterToggleValueChanged && toggle.isOn != toggleWasOn)
|
|
{
|
|
//Debug.Log(gameObject.name + " 值发生改变: " + toggle.isOn);
|
|
|
|
toggleWasOn = toggle.isOn;
|
|
}
|
|
}
|
|
|
|
private bool CanEnterToggleValueChanged()
|
|
{
|
|
// 在这里进行条件判断,返回 true 或 false
|
|
// 返回 true 表示满足条件,可以进入 Toggle 值改变方法
|
|
// 返回 false 表示不满足条件,不执行 Toggle 值改变方法
|
|
|
|
return SomeConditionIsTrue();
|
|
}
|
|
|
|
private bool SomeConditionIsTrue()
|
|
{
|
|
return uIToCabinet.isContinue_menu;
|
|
}
|
|
}
|