using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static Unity.Burst.Intrinsics.X86.Avx;
///
/// 剥线钳
///
public class Tool_WireStripper : Tool_Base
{
///
/// 开始剪封印
///
///
public void CutOpen(Device_Seal device_Seal)
{
base.startAction?.Invoke();
base.isMoving = true;
transform.parent = null;
transform.DORotate(device_Seal.testPosAndRot.eulerAngles, 0.5f);
transform.DOMove(device_Seal.testPosAndRot.position, 1).OnComplete(() =>
{
//播放动画
StopAllCoroutines();
StartCoroutine(PlayAnimi(device_Seal));
});
}
///
/// 剪的动画
///
///
IEnumerator PlayAnimi(Device_Seal device_Seal)
{
SkinnedMeshRenderer renderer = GetComponentInChildren();
float vlaue = 0;
//打开
while (renderer.GetBlendShapeWeight(0) < 100)
{
vlaue += (Time.deltaTime * 200);
renderer.SetBlendShapeWeight(0, vlaue);
yield return null;
}
//关闭
while (renderer.GetBlendShapeWeight(0) > 0)
{
vlaue -= (Time.deltaTime * 200);
renderer.SetBlendShapeWeight(0, vlaue);
yield return null;
}
//剪断
device_Seal.Cut();
isMoving = false;
ReBackHead();
int result = (triggerAction == null ? 0 : triggerAction.Invoke(device_Seal.triggerName, true));
}
private void Update()
{
if (Input.GetMouseButtonDown(0) && !isMoving)
{
//点击螺丝验电
Ray tmpray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(tmpray, out RaycastHit hit))
{
//封印
Device_Seal ds = hit.transform.GetComponent();
if (ds != null)
{
if ((triggerAction == null ? 0 : triggerAction.Invoke(ds.triggerName, false)) == 0)
{
CutOpen(ds);
}
}
}
}
}
}