CultivationOfBrewing/Assets/Scripts/UI/UIPanel/UI_StepsPanel.cs

206 lines
8.9 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 System.Collections;
using System.Collections.Generic;
using System.IO;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class UI_StepsPanel : BasePanel
{
/// <summary>
/// 步骤预制体父物体
/// </summary>
public RectTransform StepsContent;
/// <summary>
/// 步骤滑动条
/// </summary>
public ScrollRect scrollRect;
public UI_StepsPanelItem StepsItem;
public UI_FineSoilPreparationPanel FineSoilPreparationPanel;
public PptFilesData data = new PptFilesData();
public Sprite XuanZhongsprite;
public CanvasGroup canvasGroup;
public string jsonFileName = "StepsConfig"; // JSON文件名
protected override void Awake()
{
base.Awake();
canvasGroup.alpha = 0f;
data = JsonManager.LoadData<PptFilesData>(jsonFileName);
foreach (var pptFile in data.pptFiles)
{
if (StepsItem == null || StepsContent == null)
{
Debug.LogError("按钮预制体或父对象未设置");
return;
}
// 实例化按钮
var item = Instantiate(StepsItem, StepsContent);
item.Init(pptFile.fileName);
var buttonText = item.GetComponentInChildren<TextMeshProUGUI>();
Toggle button = item.GetComponentInChildren<Toggle>();
button.name = pptFile.fileName;
if (buttonText != null)
{
buttonText.text = $"{pptFile.fileName}";
}
}
}
public override async void ShowMe(int time = 0)
{
base.ShowMe();
await ToolManager.CanvasFadeIn(canvasGroup, 0.5f);
}
public override async void HideMe(int time = 0)
{
base.HideMe();
await ToolManager.CanvasFadeOut(canvasGroup, 0.5f);
}
protected override async void OnClick(string btnName)
{
base.OnClick(btnName);
Debug.Log(btnName);
await ToolManager.RefreshScrollView(StepsContent, scrollRect);
switch (btnName)
{
case "retrun_Btn":
Bootstrap.Instance.scenesManager.LoadSceneAsyn("MenuScene", () =>
{
Bootstrap.Instance.uiManager.ShowPanel<UI_SelectModePanel>(this, E_UI_Layer.Top, (panel) =>
{
Bootstrap.Instance.uiManager.ShowPanel<UI_BGPanel>(this, E_UI_Layer.Bot, (panel) =>
{
Debug.Log("加载场景成功");
Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_StepsPanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_MainTitlePanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_ContentPanel>();
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
Debug.Log("UI_StepsPanel已经显示在" + E_UI_Layer.System);
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType., false);
});
});
});
break;
default:
break;
}
}
protected override async void OnChangeToggle(string togglePath, bool isOn)
{
base.OnChangeToggle(togglePath, isOn);
await ToolManager.RefreshScrollView(StepsContent, scrollRect);
switch (togglePath)
{
case "retrun_Btn":
if (isOn)
{
Bootstrap.Instance.scenesManager.LoadSceneAsyn("MenuScene", () =>
{
Bootstrap.Instance.uiManager.ShowPanel<UI_SelectModePanel>(this, E_UI_Layer.Top, (panel) =>
{
Bootstrap.Instance.uiManager.ShowPanel<UI_BGPanel>(this, E_UI_Layer.Bot, (panel) =>
{
Debug.Log("加载场景成功");
Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_StepsPanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_MainTitlePanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_ContentPanel>();
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
Debug.Log("UI_StepsPanel已经显示在" + E_UI_Layer.System);
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType., false);
});
});
});
}
break;
case "育苗前种子处理":
Debug.Log("育苗前种子处理");
UI_ContentPanel.instance.Tips = "1.选种是为了淘汰瘦小、损伤、虫蛀和霉变的种子选出粒大饱满、外观光滑且有光泽的籽粒。选种方法包括风选和筛选风选可用风车或簸箕将枇子、虫蛀等籽粒扇掉筛选则使用3.5毫米-4毫米孔径的筛子筛去小粒种子。选种后种子发芽率更高出苗整齐一致有利于培育壮苗。(在簸箕中选择完整种子并进行泡发)\r\n" +
"\n2.再用%广枯宁水剂浸泡1012小时待种子吸胀后捞起滤干备用。这种方法既能有效防治病害又能保证高粱产品的有机品质"
;
UI_ContentPanel.instance.fizhi();
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
CameraManager.instance.Camera.transform.SetPositionAndRotation
(CameraManager.instance.StepTrans[0].transform.position, CameraManager.instance.StepTrans[0].transform.rotation);
UI_ContentPanel.instance.Tips = "";
break;
case "播撒育苗技术流程":
Debug.Log("播撒育苗技术流程");
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
CameraManager.instance.Camera.transform.SetPositionAndRotation
(CameraManager.instance.StepTrans[4].transform.position, CameraManager.instance.StepTrans[4].transform.rotation);
break;
case "精细整地要求":
//UI_ContentPanel.instance.Tips = "";
Bootstrap.Instance.uiManager.ShowPanel<UI_FineSoilPreparationPanel>(this, E_UI_Layer.Mid, (panel) =>
{
UI_ContentPanel.instance.Tips = "1.在整地过程中,需彻底清除杂草,以减少杂草与高粱争夺养分。" +
"\n2.在播种前进行精细整地春季解冻后深翻至2030cm确保土壤疏松无硬结为播种和保苗创造良好条件。" +
"\n3.整地时需注意地表平整,无坷垃,以便于后续的播种和田间管理。";
UI_ContentPanel.instance.fizhi();
Debug.Log("精细整地要求");
CameraManager.instance.Camera.fieldOfView = 60;
CameraManager.instance.Camera.transform.SetPositionAndRotation
(CameraManager.instance.StepTrans[1].transform.position, CameraManager.instance.StepTrans[1].transform.rotation);
});
UI_ContentPanel.instance.Tips = "";
//Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.拖车, true);
break;
case "苗龄与叶龄标准":
Debug.Log("育苗前种子处理");
UI_ContentPanel.instance.Tips = "";
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
break;
case "移栽时机和方式管理":
Debug.Log("移栽时机和方式管理");
UI_ContentPanel.instance.Tips = "";
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
break;
case "移栽后管理":
Debug.Log("移栽后管理");
UI_ContentPanel.instance.Tips = "";
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
break;
case "田间管理":
Debug.Log("田间管理");
UI_ContentPanel.instance.Tips = "";
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
break;
case "病虫害防治":
Debug.Log("病虫害防治");
UI_ContentPanel.instance.Tips = "";
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
break;
case "种子收货与储藏":
Debug.Log("种子收货与储藏");
UI_ContentPanel.instance.Tips = "";
Bootstrap.Instance.uiManager.HidePanel<UI_FineSoilPreparationPanel>();
break;
}
}
}