ShanxiKnowledgeBase/SXElectricityInformationAcq.../Assets/taoruiqi/Script/ElectricCheckPen.cs

135 lines
4.1 KiB
C#

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;
/// <summary>
/// 验电笔
/// </summary>
public class ElectricCheckPen : MonoBehaviour
{
[Header("剥线钳物体")]
/// <summary>
/// 验电笔物体
/// </summary>
public GameObject ElectricCheckPenOBJ;
[Header("验电笔插座验电处")]
/// <summary>
/// 验电笔插座验电处
/// </summary>
public Transform ElectricalInspectionOfficeTrans;
[Header("验电笔表面材质")]
/// <summary>
/// 验电笔表面材质
/// </summary>
public Material ElectricCheckPenMater;
[Header("判断")]
public bool useColorOn = true; // 控制使用哪种颜色的布尔值
/// <summary>
/// 是否在手上
/// </summary>
bool issocket;
void Start()
{
ElectricCheckPenMater.SetFloat("_SwitchOfEmi", 0);
}
/// <summary>
/// 电箱不带电
/// </summary>
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<AnimationProcessManager>().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<AnimationProcessManager>().HandleClick(hit.collider.gameObject.name);
}
}
}
}
/// <summary>
/// 插座带电
/// </summary>
private void OnMouseDown()
{
if (gameObject.name == "插座")
{
Warninglight();
}
}
/// <summary>
/// 验电笔点击插座
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 验电笔屏幕颜色闪烁
/// </summary>
/// <returns></returns>
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);
}
}