shaoxiadiablo/Assets/AGame/Scripts/Game/Stat/Stat_WalkAction.cs

70 lines
1.8 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-09-02
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "Stat_IdleAction" company="Kimch"></copyright>
// <summary></summary>
// ***********************************************************************
using System.Collections.Generic;
using UnityEngine;
namespace G
{
public class Stat_WalkAction : Stat_BaseAction
{
#pragma warning disable CS0414 // 字段“Stat_WalkAction.m_speedFactor”已被赋值但从未使用过它的值
private float m_speedFactor;
#pragma warning restore CS0414 // 字段“Stat_WalkAction.m_speedFactor”已被赋值但从未使用过它的值
private float m_moveSpeed;
private float m_footStepTime;
private Vector3 target;
public Stat_WalkAction(Stat_StateManager statMgr)
: base(statMgr)
{
}
public override bool Enter(Dictionary<string, object> param, bool clearDelegates = false)
{
base.Enter(param, clearDelegates);
if (param.ContainsKey("target"))
{
target = (Vector3)param["target"];
}
Vector3 curDir = target - m_char.transform.position;
curDir = curDir.normalized;
curDir.y = 0f;
m_char.SetCurDir(curDir);
m_speedFactor = 6.5f;
m_moveSpeed = m_char.GetMoveSpeed();
m_char.ResetRigidBody();
m_char.SetAtkCollision(false);
m_char.SetAtkCollision(true);
return true;
}
public override bool UpdateDelegate()
{
m_char.Move(m_char.forward, m_moveSpeed);
float num = Vector3.Distance(m_char.transform.position, target);
if ((double)num <= 0.01)
{
Exit();
}
return true;
}
public override bool CanTransition(enStat stat)
{
return true;
}
}
}