using UnityEngine; namespace BrewMonster { /// /// Link movement (lightning chain - minimal movement, updates GFX params). /// Mirrors C++ CGfxLinkMove exactly (A3DSkillGfxEvent2.cpp:324-356). /// 链接移动(闪电链 - 最小移动,更新GFX参数),完全镜像C++ CGfxLinkMove。 /// public class CGfxLinkMove : CGfxMoveBase { public CGfxLinkMove(GfxMoveMode mode) : base(mode) { } /// /// Initialize link movement (just sets position and direction). /// 初始化链接移动(仅设置位置和方向)。 /// public override void StartMove(Vector3 vHost, Vector3 vTarget) { m_vPos = vHost; Vector3 vDir = vTarget - vHost; m_vMoveDir = vDir.normalized; } /// /// Tick link movement (always returns false - hit triggered by timeout). /// 更新链接移动(始终返回false - 命中由超时触发)。 /// public override bool TickMove(uint dwDeltaTime, Vector3 vHostPos, Vector3 vTargetPos) { // Link movement doesn't actually move - it's handled by UpdateGfxParam // 链接移动实际上不移动 - 由UpdateGfxParam处理 return false; } /// /// Update GFX parameters for link effect (host and target positions). /// Note: In Unity, this would be called from the event system to update particle system parameters. /// 更新链接效果的GFX参数(施法者和目标位置)。 /// 注意:在Unity中,这将从事件系统调用以更新粒子系统参数。 /// public virtual void UpdateGfxParam(Vector3 vHost, Vector3 vTarget) { // In C++, this updates A3DGFXEx parameters (ID_PARAM_LTN_POS1, ID_PARAM_LTN_POS2) // In Unity, this would update particle system start/end positions // 在C++中,这更新A3DGFXEx参数(ID_PARAM_LTN_POS1, ID_PARAM_LTN_POS2) // 在Unity中,这将更新粒子系统的起始/结束位置 // Implementation depends on how Unity particle systems handle link effects // 实现取决于Unity粒子系统如何处理链接效果 } } }