using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using DG.Tweening;
///
/// 工具材料基类
///
public class Tool_Base : PermanentTriggerBase
{
///
/// 工具类型
///
public ToolType toolType;
///
/// trigger触发事件
///
public Func triggerAction;
///
/// 是否再移动
///
public bool isMoving;
private Vector3 head_LocalPos;
private Vector3 head_LocalEulerAnglesl;
protected override void OnAwake()
{
if (GameManager.RunModelMgr.SceneType == E_SceneType.Site)
{
base.OnAwake();
}
}
protected override void OnStart()
{
if (GameManager.RunModelMgr.SceneType == E_SceneType.Site)
{
base.OnStart();
AddTriggerAction(GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID);
}
}
protected override void OnMEnter()
{
if (GameManager.RunModelMgr.SceneType == E_SceneType.Site && GameManager.RunModelMgr.ModeType != E_ModeType.Study)
{
base.OnMEnter();
_highlight.SetHighlighted(true);
}
}
protected override void OnMExit()
{
if (GameManager.RunModelMgr.SceneType == E_SceneType.Site && GameManager.RunModelMgr.ModeType != E_ModeType.Study)
{
base.OnMExit();
_highlight.SetHighlighted(false);
}
}
public void AddTriggerAction(Func action)
{
this.triggerAction = action;
}
public void AddStartAction(Action callback)
{
hand_out_action += callback;
}
public void AddEndAction(Action callback)
{
hand_back_action += callback;
}
///
/// 设置工具回到手中的位置
///
///
///
public void SetHeadPosAndEulerang(Vector3 head_LocalPos, Vector3 head_LocalEulerAnglesl)
{
this.head_LocalPos = head_LocalPos;
this.head_LocalEulerAnglesl = head_LocalEulerAnglesl;
}
///
/// 工具回到手中
///
public void ReBackHead(Action back=null)
{
isMoving = true;
transform.parent = Camera.main.transform;
transform.DOLocalRotate(head_LocalEulerAnglesl, 0.3f);
transform.DOLocalMove(head_LocalPos, 0.8f).OnComplete(() =>
{
transform.localPosition = head_LocalPos;
transform.localEulerAngles = head_LocalEulerAnglesl;
isMoving = false;
hand_back_action?.Invoke();
back?.Invoke();
});
}
}