using DG.Tweening; using UnityEngine; namespace DefaultNamespace.ProcessMode { public class test : MonoBehaviour { private AnimationProcessManager processManager; public GameObject device1; // 假设这是场景中的一个设备 public GameObject device2; // 假设这是场景中的另一个设备 private void Start() { processManager = GetComponent(); // 设置模式 processManager.currentMode = ProcessMode.Teaching; // 创建步骤并避免未初始化的错误 AnimationStep step1 = null; AnimationStep step2 = null; step1 = new AnimationStep("Step 1: Click device1", 10, () => { device1.transform.DOMove(new Vector3(0, 1, 0), 1).OnComplete(() => { processManager.AddStepToProcess("Teaching", step1); }); }, device1); step2 = new AnimationStep("Step 2: Click device2", 20, () => { device2.transform.DOScale(new Vector3(2, 2, 2), 1).OnComplete(() => { processManager.AddStepToProcess("Teaching", step2); }); }, device2); // 向流程中添加步骤 processManager.AddStepToProcess("Teaching", step1); processManager.AddStepToProcess("Teaching", step2); } 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; } } }