CultivationOfBrewing-2/Assets/Scripts/CXX/Tools/Tool_UPan.cs

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;
}
}
}