少年修仙传客户端代码仓库
6282 【前端】【2.0】封魔之地的飞跃功能 修改开始触发飞行前的行为, 增加播放飞行特效的逻辑
1个文件已修改
35 ■■■■■ 已修改文件
Fight/Stage/MapEditor/Game/TransferGroup.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/MapEditor/Game/TransferGroup.cs
@@ -7,6 +7,7 @@
    private int m_CurrentIndex;
    private byte m_Step;
    private int targetPoint;
    private int startPoint;
    private List<SFXController> m_EffectList = new List<SFXController>();
    public TransferGroup(H2Engine.MapTrasfer data)
@@ -33,6 +34,8 @@
    private Vector3 m_StartPos;
    private bool isPositive = true;
    private SFXController m_FlyingEffect;
    public void Update()
    {
        if (m_Data.transferPoints == null
@@ -58,11 +61,10 @@
                    _distance = MathUtility.DistanceSqrtXZ(_hero.Pos, _p.position);
                    if (_distance < _p.radius * _p.radius)
                    {
                        m_Step = 1;
                        m_InCreaseTime = 0;
                        m_Step = 11;
                        GA_Hero.s_MapSwitching = true;
                        _hero.Pos = m_StartPos = m_Data.transferPoints[i].position;
                        _hero.StopPathFind();
                        startPoint = i;
                        if (i == 0)
                        {
                            isPositive = true;
@@ -75,6 +77,21 @@
                        }
                        break;
                    }
                }
                break;
            case 11:
                _p = m_Data.transferPoints[startPoint];
                var _dir = MathUtility.ForwardXZ(_p.position, _hero.Pos);
                _hero.Pos += _hero.ActorInfo.moveSpeed * Time.deltaTime * _dir;
                _distance = MathUtility.DistanceSqrtXZ(_p.position, _hero.Pos);
                _hero.Run();
                if (_distance < 0.01f)
                {
                    _hero.Pos = m_StartPos = m_Data.transferPoints[startPoint].position;
                    m_Step = 1;
                    m_InCreaseTime = 0;
                    m_FlyingEffect = SFXPlayUtility.Instance.PlayBattleEffect(1180, _hero);
                    _hero.Idle();
                }
                break;
            case 1:
@@ -142,6 +159,11 @@
                    {
                        m_Step = 3;
                        GA_Hero.s_MapSwitching = false;
                        if (m_FlyingEffect)
                        {
                            SFXPlayUtility.Instance.Release(m_FlyingEffect);
                            m_FlyingEffect = null;
                        }
                    }
                }
                break;
@@ -167,6 +189,13 @@
            SFXPlayUtility.Instance.Release(_effect);
        }
        m_EffectList.Clear();
        if (m_FlyingEffect)
        {
            SFXPlayUtility.Instance.Release(m_FlyingEffect);
            m_FlyingEffect = null;
        }
        m_Data = null;
    }
}