gongyejiqiren/Assets/_Scripts/Application/UI/ShiJiaoQiTuLiCtrlPanel.cs

129 lines
4.0 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using CG.Framework;
/// <summary>
/// 示教器状态
/// </summary>
//public enum SJQState
//{
// Retract,//收起
// Expand,//展开
// Hide,//隐藏
// None
//}
namespace ZXK.GYJQR
{
/// <summary>
/// 示教器管理类
/// </summary>
public class ShiJiaoQiTuLiCtrlPanel : UIBase
{
private Button sjqButton;//示教器按鈕
private List<Toggle> sJQToggles=new List<Toggle>();//Toggle列表
//[HideInInspector]
//public SJQState jQState = SJQState.None;//示教器状态枚举
[NonSerialized]//需要受控的对象
public GameObject sjq;
private int clickCount = 0;//按钮点击次數
public Action _ShouQiCall = null;
public Action _ZhanKaiCall = null;
public Action _YinCangCall = null;
protected override void Awake()
{
base.Awake();
}
void Start()
{
sjqButton = transform.GetComponent<Button>();
sJQToggles.Add(transform.Find("TogglePanel/shouqiTog").GetComponent<Toggle>());
sJQToggles.Add(transform.Find("TogglePanel/zhankaiTog").GetComponent<Toggle>());
sJQToggles.Add(transform.Find("TogglePanel/yincangTog").GetComponent<Toggle>());
sjqButton.onClick.AddListener(OnSJQButtonClick);
foreach (var item in sJQToggles)
{
item.onValueChanged.AddListener((args) => OnSJQToggleClick(item, args));
}
}
/// <summary>
/// 示教器按鈕點擊事件
/// </summary>
public void OnSJQButtonClick()
{
clickCount++;
if (clickCount == 1)
{
//OnSJQToggleState(SJQState.Retract);
_ShouQiCall?.Invoke();
sJQToggles[0].isOn = true;
}
else if (clickCount == 2)
{
//OnSJQToggleState(SJQState.Expand);
_ZhanKaiCall?.Invoke();
sJQToggles[1].isOn = true;
}
else if (clickCount == 3)
{
//OnSJQToggleState(SJQState.Hide);
_YinCangCall?.Invoke();
sJQToggles[2].isOn = true;
clickCount = 0;
}
}
/// <summary>
/// 示教器Toggle点击事件
/// </summary>
public void OnSJQToggleClick(Toggle toggle, bool args)
{
if (args)
{
if (toggle.transform.GetComponentInChildren<Text>().text == "收起")
{
_ShouQiCall?.Invoke();
//jQState = SJQState.Retract;
//OnSJQToggleState(jQState);
}
else if (toggle.transform.GetComponentInChildren<Text>().text == "展开")
{
_ZhanKaiCall?.Invoke();
//jQState = SJQState.Expand;
//OnSJQToggleState(jQState);
}
else if (toggle.transform.GetComponentInChildren<Text>().text == "隐藏")
{
_YinCangCall?.Invoke();
//jQState = SJQState.Hide;
//OnSJQToggleState(jQState);
}
}
}
///// <summary>
///// 设置示教器状态
///// </summary>
//public void OnSJQToggleState(SJQState jQState)
//{
// switch (jQState)
// {
// case SJQState.Retract:
// sjq.transform.DOScale(Vector3.one * 0.5f, 1.0f);
// break;
// case SJQState.Expand:
// sjq.transform.DOScale(Vector3.one * 1.0f, 1.0f);
// break;
// case SJQState.Hide:
// sjq.transform.DOScale(Vector3.zero, 1.0f);
// break;
// case SJQState.None:
// break;
// default:
// break;
// }
//}
}
}