using System.Collections; using System.Collections.Generic; using System.IO; using TMPro; using UnityEngine; using UnityEngine.UI; public class UI_StepsPanel : BasePanel { /// /// 步骤预制体父物体 /// public RectTransform StepsContent; /// /// 步骤滑动条 /// 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(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(); Toggle button = item.GetComponentInChildren(); 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(this, E_UI_Layer.Top, (panel) => { Bootstrap.Instance.uiManager.ShowPanel(this, E_UI_Layer.Bot, (panel) => { Debug.Log("加载场景成功"); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); 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(this, E_UI_Layer.Top, (panel) => { Bootstrap.Instance.uiManager.ShowPanel(this, E_UI_Layer.Bot, (panel) => { Debug.Log("加载场景成功"); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); Bootstrap.Instance.uiManager.HidePanel(); 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.再用%广枯宁水剂浸泡10~12小时,待种子吸胀后捞起滤干备用。这种方法既能有效防治病害,又能保证高粱产品的有机品质" ; UI_ContentPanel.instance.fizhi(); Bootstrap.Instance.uiManager.HidePanel(); 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(); 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(this, E_UI_Layer.Mid, (panel) => { UI_ContentPanel.instance.Tips = "1.在整地过程中,需彻底清除杂草,以减少杂草与高粱争夺养分。" + "\n2.在播种前进行精细整地,春季解冻后深翻至20~30cm,确保土壤疏松无硬结,为播种和保苗创造良好条件。" + "\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(); break; case "移栽时机和方式管理": Debug.Log("移栽时机和方式管理"); UI_ContentPanel.instance.Tips = ""; Bootstrap.Instance.uiManager.HidePanel(); break; case "移栽后管理": Debug.Log("移栽后管理"); UI_ContentPanel.instance.Tips = ""; Bootstrap.Instance.uiManager.HidePanel(); break; case "田间管理": Debug.Log("田间管理"); UI_ContentPanel.instance.Tips = ""; Bootstrap.Instance.uiManager.HidePanel(); break; case "病虫害防治": Debug.Log("病虫害防治"); UI_ContentPanel.instance.Tips = ""; Bootstrap.Instance.uiManager.HidePanel(); break; case "种子收货与储藏": Debug.Log("种子收货与储藏"); UI_ContentPanel.instance.Tips = ""; Bootstrap.Instance.uiManager.HidePanel(); break; } } }