备份CatanBuilding瘦身独立工程
This commit is contained in:
124
Assets/Scripts/EventWashing/Tools/ToolShovel.cs
Normal file
124
Assets/Scripts/EventWashing/Tools/ToolShovel.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using cfg;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using UnityEngine;
|
||||
|
||||
namespace game
|
||||
{
|
||||
public class ToolShovel : OperatingToolsBase
|
||||
{
|
||||
[Tooltip("动画")]
|
||||
[SerializeField]
|
||||
private Animation m_Animation = null;
|
||||
|
||||
[Tooltip("循环动画")]
|
||||
[SerializeField]
|
||||
private string m_LoopAnimation = null;
|
||||
|
||||
[Tooltip("最后一击动画")]
|
||||
[SerializeField]
|
||||
private string m_FinalBlowAnimation = null;
|
||||
|
||||
[Tooltip("循环动画声音节点")]
|
||||
[SerializeField]
|
||||
private GameObject m_LoopAnimationNode = null;
|
||||
|
||||
[Tooltip("最后一击动画声音节点")]
|
||||
[SerializeField]
|
||||
private GameObject m_FinalBlowAnimationNode = null;
|
||||
|
||||
#region 行为相关
|
||||
public override void Enter1stStage()
|
||||
{
|
||||
base.Enter1stStage();
|
||||
if (m_Animation != null)
|
||||
{
|
||||
m_Animation.Play(m_LoopAnimation);
|
||||
}
|
||||
if (m_LoopAnimationNode != null && m_LoopAnimationNode.activeSelf == false)
|
||||
{
|
||||
m_LoopAnimationNode.SetActive(true);
|
||||
}
|
||||
}
|
||||
public override void Exit1stStage()
|
||||
{
|
||||
base.Exit1stStage();
|
||||
if (m_Animation != null)
|
||||
{
|
||||
m_Animation.Stop(m_LoopAnimation);
|
||||
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 Enter2ndStage()
|
||||
{
|
||||
base.Enter2ndStage();
|
||||
if (m_Animation != null)
|
||||
{
|
||||
m_Animation.Play(m_FinalBlowAnimation);
|
||||
}
|
||||
|
||||
if (m_FinalBlowAnimationNode != null && m_FinalBlowAnimationNode.activeSelf == false)
|
||||
{
|
||||
m_FinalBlowAnimationNode.SetActive(true);
|
||||
}
|
||||
}
|
||||
public override void Exit2ndStage()
|
||||
{
|
||||
base.Exit2ndStage();
|
||||
if (m_Animation != null)
|
||||
{
|
||||
m_Animation.transform.localPosition = Vector3.zero;
|
||||
m_Animation.transform.localEulerAngles = Vector3.zero;
|
||||
}
|
||||
|
||||
if (m_FinalBlowAnimationNode != null && m_FinalBlowAnimationNode.activeSelf == true)
|
||||
{
|
||||
m_FinalBlowAnimationNode.SetActive(false);
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
if (m_FinalBlowAnimationNode != null && m_FinalBlowAnimationNode.activeSelf == true)
|
||||
{
|
||||
m_FinalBlowAnimationNode.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
public override void StopExecuting()
|
||||
{
|
||||
base.StopExecuting();
|
||||
StopAllAnimation();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 生命周期
|
||||
public override void InitTool()
|
||||
{
|
||||
base.InitTool();
|
||||
m_Type = EventWashingTool.Shovel;
|
||||
m_PrepareCumulativeTime = 0f;
|
||||
|
||||
StopAllAnimation();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user