ShanxiKnowledgeBase/SXElectricityInformationAcq.../Assets/Scripts/ProcessMode/test.cs

70 lines
2.1 KiB
C#

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<AnimationProcessManager>();
// 设置模式
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;
}
}
}