ND_SimulationAutomaticControl/Assets/Scripts/SubjectToggle.cs

170 lines
5.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DG.Tweening;
using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class SubjectToggle : BaseItem, IPointerEnterHandler, IPointerExitHandler
{
public Toggle Toggle_Subject;
public UI_ChooesPanel ChooesPanel;
public UI_TopTitlePanel TopTitlePanel;
public Sprite[] subjectSprites; //科目选择图片
public TextMeshProUGUI SubjectNameText; //科目
public TextMeshProUGUI SubjectContentText; //课题内容名字
//public Image targetimage;
public bool isIPointer; //是否放上去
void Start()
{
Toggle_Subject = GetComponent<Toggle>();
SubjectNameText = GetControl<TextMeshProUGUI>("实验text");
SubjectContentText = GetControl<TextMeshProUGUI>("课题内容名称");
SubjectContentText.gameObject.SetActive(false);
Toggle_Subject.onValueChanged.AddListener((ison) =>
{
switch (transform.name)
{
case "Subject1":
//Bootstrap.Instance.uiManager.HidePanel<UI_TopTitlePanel>();
Bootstrap.Instance.uiManager.ShowPanel<UI_LoadingPanel>(this, E_UI_Layer.System, (panel) =>
{
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.5f);
Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "xianchang", () =>
{
Bootstrap.Instance.uiManager.ShowPanel<UI_TopTitlePanel>(this, E_UI_Layer.Top, (panel) =>
{
Bootstrap.Instance.uiManager.HidePanel<UI_ChooesPanel>();
Debug.Log("加载场景成功");
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 2f);
});
});
});
break;
case "Subject2":
break;
case "Subject3":
break;
case "Subject4":
break;
}
});
}
public void OnPointerEnter(PointerEventData eventData)
{
isIPointer = true;
StartCoroutine(ToggleDoScale(isIPointer));
Image image = GetComponentInChildren<Image>();
image.sprite = subjectSprites[0];
//ChooesPanel.targetimage.gameObject.SetActive(true);
switch (transform.name)
{
case "Subject1":
LoadImage("Sprite/1");
Toggle_Subject.isOn = false;
Debug.Log("1111");
break;
case "Subject2":
LoadImage("Sprite/2");
Debug.Log("2222");
break;
case "Subject3":
LoadImage("Sprite/3");
Debug.Log("3333");
break;
case "Subject4":
Debug.Log("4444");
break;
}
}
public void OnPointerExit(PointerEventData eventData)
{
isIPointer = false;
//ChooesPanel.targetimage.gameObject.SetActive(isIPointer);
Image image = GetComponentInChildren<Image>();
image.sprite = subjectSprites[1];
StartCoroutine(ToggleDoScale(isIPointer));
switch (transform.name)
{
case "Subject1":
//LoadImage("Sprite/1");
Toggle_Subject.isOn = false;
SubjectContentText.gameObject.SetActive(false);
SubjectContentText.DOFade(0, 0.01f);
Debug.Log("1111");
break;
case "Subject2":
//LoadImage("Sprite/2");
Toggle_Subject.isOn = false;
SubjectContentText.gameObject.SetActive(false);
SubjectContentText.DOFade(0, 0.01f);
Debug.Log("2222");
break;
case "Subject3":
//LoadImage("Sprite/3");
Toggle_Subject.isOn = false;
SubjectContentText.gameObject.SetActive(false);
SubjectContentText.DOFade(0, 0.01f);
Debug.Log("3333");
break;
case "Subject4":
// Debug.Log("4444");
Toggle_Subject.isOn = false;
SubjectContentText.gameObject.SetActive(false);
SubjectContentText.DOFade(0, 0.01f);
break;
}
}
/// <summary>
/// 加载文件夹中图片
/// </summary>
/// <param name="path"></param>
public void LoadImage(string path)
{
Sprite sprite = Resources.Load<Sprite>(path);
if (sprite != null)
{
ChooesPanel.targetimage.sprite = sprite;
Debug.Log("sprite加载成功");
}
else
{
Debug.Log("sprite加载失败当前文件夹未找到");
}
}
/// <summary>
/// toggle变大
/// </summary>
/// <param name="isOn"></param>
/// <returns></returns>
IEnumerator ToggleDoScale(bool isOn)
{
yield return new WaitForSeconds(0.01f);
if (isOn)
{
SubjectContentText.DOFade(1, 1f);
SubjectContentText.gameObject.SetActive(isOn);
SubjectNameText.transform.DOLocalMoveY(70,0.5f);
Toggle_Subject.transform.DOScale(1.2f, 0.1f);
}
else
{
SubjectContentText.DOFade(0, 0.5f);
SubjectContentText.gameObject.SetActive(isOn);
SubjectNameText.transform.DOLocalMoveY(0,0.5f);
Toggle_Subject.transform.DOScale(1f, 0.1f);
}
}
}