68 lines
1.8 KiB
C#
68 lines
1.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using static Unity.Burst.Intrinsics.X86.Avx;
|
|
|
|
/// <summary>
|
|
/// 剥线钳
|
|
/// </summary>
|
|
public class Tool_WireStripper : Tool_Base
|
|
{
|
|
/// <summary>
|
|
/// 开始剪封印
|
|
/// </summary>
|
|
/// <param name="device_Seal"></param>
|
|
public void CutOpen(Device_Seal device_Seal)
|
|
{
|
|
transform.position = device_Seal.testPosAndRot.position;
|
|
transform.eulerAngles = device_Seal.testPosAndRot.eulerAngles;
|
|
//播放动画
|
|
StopAllCoroutines();
|
|
StartCoroutine(PlayAnimi(device_Seal));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 剪的动画
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
IEnumerator PlayAnimi(Device_Seal device_Seal)
|
|
{
|
|
SkinnedMeshRenderer renderer= GetComponentInChildren<SkinnedMeshRenderer>();
|
|
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();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (Input.GetMouseButtonDown(0))
|
|
{
|
|
//点击螺丝验电
|
|
Ray tmpray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
|
if (Physics.Raycast(tmpray, out RaycastHit hit))
|
|
{
|
|
//封印
|
|
Device_Seal ds = hit.transform.GetComponent<Device_Seal>();
|
|
if (ds != null)
|
|
{
|
|
CutOpen(ds);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|