77 lines
2.0 KiB
C#
77 lines
2.0 KiB
C#
using cfg;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace game
|
|
{
|
|
public class ToolSpanner : OperatingToolsBase
|
|
{
|
|
[Tooltip("动画")]
|
|
[SerializeField]
|
|
private Animation m_Animation = null;
|
|
|
|
[Tooltip("循环动画")]
|
|
[SerializeField]
|
|
private string m_LoopAnimation = null;
|
|
|
|
[Tooltip("循环动画声音节点")]
|
|
[SerializeField]
|
|
private GameObject m_LoopAnimationNode = null;
|
|
|
|
#region 动画相关
|
|
protected override void PlayOperationAnimation()
|
|
{
|
|
base.PlayOperationAnimation();
|
|
if (m_Animation != null)
|
|
{
|
|
m_Animation.Play(m_LoopAnimation);
|
|
m_IsAuthorizedAnimation = true;
|
|
}
|
|
|
|
if (m_LoopAnimationNode != null && m_LoopAnimationNode.activeSelf == false)
|
|
{
|
|
m_LoopAnimationNode.SetActive(true);
|
|
}
|
|
}
|
|
protected override void StopPlayOperationAnimation()
|
|
{
|
|
base.StopPlayOperationAnimation();
|
|
StopAllAnimation();
|
|
}
|
|
|
|
private void StopAllAnimation()
|
|
{
|
|
if (m_Animation != null)
|
|
{
|
|
m_Animation.Stop();
|
|
m_Animation.transform.localPosition = Vector3.zero;
|
|
m_Animation.transform.localEulerAngles = Vector3.zero;
|
|
}
|
|
|
|
if (m_LoopAnimationNode != null && m_LoopAnimationNode.activeSelf == true)
|
|
{
|
|
m_LoopAnimationNode.SetActive(false);
|
|
}
|
|
}
|
|
|
|
public override void StopExecuting()
|
|
{
|
|
base.StopExecuting();
|
|
StopAllAnimation();
|
|
}
|
|
#endregion
|
|
|
|
#region 生命周期
|
|
public override void InitTool()
|
|
{
|
|
base.InitTool();
|
|
m_Type = EventWashingTool.Spanner;
|
|
m_PrepareCumulativeTime = 0f;
|
|
|
|
StopAllAnimation();
|
|
}
|
|
#endregion
|
|
}
|
|
}
|