using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; using DefaultNamespace.ProcessMode; using MotionFramework; using UnityEngine; using Unity.VisualScripting; using UnityEngine.EventSystems; /// /// 验电笔 /// public class ElectricCheckPen : MonoBehaviour { [Header("剥线钳物体")] /// /// 验电笔物体 /// public GameObject ElectricCheckPenOBJ; [Header("验电笔插座验电处")] /// /// 验电笔插座验电处 /// public Transform ElectricalInspectionOfficeTrans; [Header("验电笔表面材质")] /// /// 验电笔表面材质 /// public Material ElectricCheckPenMater; [Header("判断")] public bool useColorOn = true; // 控制使用哪种颜色的布尔值 /// /// 是否在手上 /// bool issocket; void Start() { ElectricCheckPenMater.SetFloat("_SwitchOfEmi", 0); } /// /// 电箱不带电 /// void Update() { if (EventSystem.current.IsPointerOverGameObject()) return; if (Input.GetMouseButtonDown(0)) {//Camera.transform.forward Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; bool raycast = Physics.Raycast(ray, out hit); if (raycast) { if (hit.collider.gameObject.name == "箱体") { ElectricCheckPenOBJ.gameObject.transform.SetParent(null); ElectricCheckPenOBJ.gameObject.transform.DOLocalMove(new Vector3(303.038f, 2.655f, 163.822f), 2f); Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule().HandleClick(hit.collider.gameObject.name); } if (hit.collider.gameObject.name == "插座") { ElectricCheckPenOBJ.gameObject.transform.SetParent(null); StartCoroutine(socket()); //Warninglight(); Debug.Log(hit.collider.gameObject.name); MotionEngine.GetModule().HandleClick(hit.collider.gameObject.name); } } } } /// /// 插座带电 /// private void OnMouseDown() { if (gameObject.name == "插座") { Warninglight(); } } /// /// 验电笔点击插座 /// /// IEnumerator socket() { ElectricCheckPenOBJ.gameObject.transform.DOLocalMove(ElectricalInspectionOfficeTrans.gameObject.transform.localPosition, 1f).OnComplete(() => { //ElectricCheckPenOBJ.gameObject.transform.DOLocalRotate(new Vector3(20.78f, 72.47f, 171.503f), 1.5f).OnComplete(() => //{ // Debug.Log("123"); Warninglight(); //}); }); yield return null; } /// /// 验电笔屏幕颜色闪烁 /// /// async void Warninglight() { ElectricCheckPenMater.SetFloat("_SwitchOfEmi", 1); //ElectricCheckPenMater.SetColor("Int_E",Color.red); //ElectricCheckPenSpr.color = new Color(255, 0, 0); await Task.Delay(TimeSpan.FromSeconds(0.5f)); ElectricCheckPenMater.SetFloat("_SwitchOfEmi", 0); //ElectricCheckPenMater.SetColor("Int_E", Color.white); //ElectricCheckPenSpr.color = new Color(166, 183, 213); await Task.Delay(TimeSpan.FromSeconds(0.5f)); ElectricCheckPenMater.SetFloat("_SwitchOfEmi", 1); //ElectricCheckPenMater.SetColor("Int_E", Color.red); //ElectricCheckPenSpr.color = new Color(255, 0, 0); await Task.Delay(TimeSpan.FromSeconds(0.5f)); ElectricCheckPenMater.SetFloat("_SwitchOfEmi", 0); //ElectricCheckPenMater.SetColor("Int_E", Color.white); //ElectricCheckPenSpr.color = new Color(166, 183, 213); } }