85 lines
2.6 KiB
C#
85 lines
2.6 KiB
C#
using DG.Tweening;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class Tool_UPan : Tool_Base
|
|
{
|
|
public bool isInstalled;
|
|
|
|
protected override void OnMDown()
|
|
{
|
|
base.OnMDown();
|
|
if(triggerAction?.Invoke(triggerName, false)==0)
|
|
Remove();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 操作安装
|
|
/// </summary>
|
|
/// <param name="deviceTrigger"></param>
|
|
/// <param name="inOrUnstallAction"></param>
|
|
public void Add(DeviceTrigger deviceTrigger, Action<bool> inOrUnstallAction = null)
|
|
{
|
|
if(!isInstalled)
|
|
{
|
|
isMoving = true;
|
|
transform.parent = deviceTrigger.transform.parent;
|
|
hand_out_action?.Invoke();
|
|
//吸附上去
|
|
transform.localEulerAngles = deviceTrigger.transform.localEulerAngles;
|
|
transform.DOLocalMove(deviceTrigger.transform.localPosition, 1).OnComplete(() =>
|
|
{
|
|
LiveSceneManager.Instance.OnCheckSubProcess(false);
|
|
Debug.Log("u盘已安装");
|
|
isMoving = false;
|
|
isInstalled = true;
|
|
GetComponent<BoxCollider>().enabled = true;
|
|
inOrUnstallAction?.Invoke(true);
|
|
triggerAction?.Invoke(deviceTrigger.triggerName, true);
|
|
CallScoreAction(null, deviceTrigger.triggerName);
|
|
//删除手里的tip
|
|
LiveSceneManager.Instance.OnCheckSubProcess(false);
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 拔下u盘
|
|
/// </summary>
|
|
private void Remove()
|
|
{
|
|
if(isInstalled)
|
|
{
|
|
isInstalled = false;
|
|
isMoving = true;
|
|
transform.DOLocalMoveZ(transform.localPosition.z + 0.05f, 0.5f).OnComplete(() =>
|
|
{
|
|
isMoving = false;
|
|
triggerAction?.Invoke(triggerName, true);
|
|
CallScoreAction(null, triggerName);
|
|
Destroy(gameObject);
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 直接安装
|
|
/// </summary>
|
|
/// <param name="isInstall"></param>
|
|
/// <param name="deviceTrigger"></param>
|
|
public void SetState(bool isInstall, DeviceTrigger deviceTrigger)
|
|
{
|
|
if (isInstall)
|
|
{
|
|
//安装
|
|
this.isInstalled = true;
|
|
transform.parent = deviceTrigger.transform.parent;
|
|
transform.localEulerAngles = deviceTrigger.transform.localEulerAngles;
|
|
transform.localPosition= deviceTrigger.transform.localPosition;
|
|
GetComponent<BoxCollider>().enabled = true;
|
|
}
|
|
}
|
|
}
|