using System.Collections; using System.Collections.Generic; using UnityEngine; using static Unity.Burst.Intrinsics.X86.Avx; /// /// 验电笔 /// public class Tool_TestPen : Tool_Base { public MeshRenderer screem; /// /// 是否闪烁 /// private bool isFlicker; private float time; private void Update() { if (Input.GetMouseButtonDown(0)) { //点击螺丝验电 Ray tmpray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(tmpray, out RaycastHit hit)) { //插座 Device_Base db = hit.transform.GetComponent(); if (db != null) { Test(db); return; } //螺丝 Tool_Base tb = hit.transform.GetComponent(); if (tb != null) { Test(tb); return; } } } if (isFlicker) { time += Time.deltaTime * 3; if (time < 1) { screem.materials[0].color = Color.red; } else if (time > 1 && time < 2) { screem.materials[0].color = Color.white; } else { time = 0; } } } /// /// 执行验电操作 /// /// 被验电设备 public void Test(Device_Base device_base) { if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(device_base.triggerName, true) == 0) { Debug.Log("Test(Device_Base device_base)"); if (device_base.deviceType == DeviceType.计量柜_插座) { var tmp = ((Device_Socket)device_base); //位置移动 transform.position = tmp.testPosAndRot.position; transform.eulerAngles = tmp.testPosAndRot.eulerAngles; Debug.Log("计量柜_插座 已验电"); isFlicker = tmp.hasElectricity; } else if (device_base.deviceType == DeviceType.计量柜_柜门) { var tmp = ((Device_CabinetDoor)device_base); //位置移动 transform.position = tmp.testPosAndRot.position; transform.localEulerAngles = tmp.testPosAndRot.localEulerAngles; Debug.Log("计量柜_柜门 已验电"); isFlicker = tmp.hasElectricity; } screem.materials[0].color = isFlicker ? Color.red : Color.white; } } /// /// 执行验电操作 /// /// 被验电设备 public void Test(Tool_Base tool_base) { if (tool_base.toolType == ToolType.螺丝) { var tmp = ((Tool_Screw)tool_base); //位置移动 transform.position = tmp.installPos.position; transform.localEulerAngles = tmp.installPos.localEulerAngles; Debug.Log("螺丝 已验电"); isFlicker = tmp.hasElectricity; } screem.materials[0].color = isFlicker ? Color.red : Color.white; } }