using UnityEngine; using UnityEngine.UI; namespace DefaultNamespace.ProcessMode { public class ProcessUIManager { public Text trainingTextBox; // 培训模式的文本框 public Text practiceTextBox; // 练习模式的文本框 public GameObject highlightObject; // 高亮对象,用于教学模式 public AnimationProcessManager processManager; // 流程管理器实例 private void Start() { processManager = new AnimationProcessManager(this); // 传递UIManager实例 } private void Update() { if (Input.GetMouseButtonDown(0)) { GameObject clickedObject = DetectClickedObject(); if (clickedObject != null) { processManager.HandleClick(clickedObject); } } } /// /// 检测点击的对象 /// /// 点击的对象 private GameObject DetectClickedObject() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { return hit.collider.gameObject; } return null; } /// /// 显示培训步骤信息 /// /// 当前步骤 public void ShowTrainingStep(AnimationStep step) { if (trainingTextBox != null) { trainingTextBox.text = step.Description; } } /// /// 显示练习步骤信息 /// /// 当前步骤 public void ShowPracticeStep(AnimationStep step) { if (practiceTextBox != null) { practiceTextBox.text = step.Description; } } /// /// 高亮显示下一个需要点击的地方(教学模式) /// /// 当前步骤 public void HighlightNextStep(AnimationStep step) { if (highlightObject != null) { highlightObject.SetActive(true); // 假设你有一个方法来定位高亮对象 // highlightObject.transform.position = ...; } } } }