| | |
| | | ? caster.GetRectTransform().anchoredPosition : Vector2.zero; |
| | | bool casterTweening = caster != null && caster.GetRectTransform() != null |
| | | && DG.Tweening.DOTween.IsTweening(caster.GetRectTransform()); |
| | | BattleDebug.LogError($"[前冲诊断] Cast 入口 skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} castMode={skillSkinConfig?.castMode} anchoredPos={castEntryPos} casterTweening={casterTweening}"); |
| | | // BattleDebug.LogError($"[前冲诊断] Cast 入口 skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} castMode={skillSkinConfig?.castMode} anchoredPos={castEntryPos} casterTweening={casterTweening}"); |
| | | } |
| | | #endif |
| | | // 广播技能释放事件 |
| | |
| | | private void ExecuteMoveAndCastSequence(RectTransform target, Action onReturnComplete) |
| | | { |
| | | #if UNITY_EDITOR |
| | | BattleDebug.LogError($"[前冲诊断] ExecuteMoveAndCastSequence 开始 skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} CastDistance={skillSkinConfig?.CastDistance} castMode={skillSkinConfig?.castMode}"); |
| | | // BattleDebug.LogError($"[前冲诊断] ExecuteMoveAndCastSequence 开始 skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} CastDistance={skillSkinConfig?.CastDistance} castMode={skillSkinConfig?.castMode}"); |
| | | #endif |
| | | ShadowIllutionCreate(true); |
| | | MoveToTarget(target, new Vector2(skillSkinConfig.CastDistance, 0), () => |
| | | { |
| | | #if UNITY_EDITOR |
| | | BattleDebug.LogError($"[前冲诊断] 前冲完成 skillId={skillConfig?.SkillID} caster={caster?.ObjID} 准备 CastImpl"); |
| | | // BattleDebug.LogError($"[前冲诊断] 前冲完成 skillId={skillConfig?.SkillID} caster={caster?.ObjID} 准备 CastImpl"); |
| | | #endif |
| | | if (skillSkinConfig.CastDistance < 9999 && skillSkinConfig.SkinllSFX2 != 0) |
| | | { |
| | |
| | | ? caster.GetRectTransform().anchoredPosition : Vector2.zero; |
| | | bool mttTweening = caster != null && caster.GetRectTransform() != null |
| | | && DG.Tweening.DOTween.IsTweening(caster.GetRectTransform()); |
| | | BattleDebug.LogError($"[前冲诊断] MoveToTarget 入口 skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} CastDistance={skillSkinConfig?.CastDistance} offset={offset} speed={speed} fromPos={fromPos} casterTweening={mttTweening}"); |
| | | // BattleDebug.LogError($"[前冲诊断] MoveToTarget 入口 skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} CastDistance={skillSkinConfig?.CastDistance} offset={offset} speed={speed} fromPos={fromPos} casterTweening={mttTweening}"); |
| | | #endif |
| | | if (skillSkinConfig.CastDistance >= 9999) |
| | | { |
| | | #if UNITY_EDITOR |
| | | BattleDebug.LogError($"[前冲诊断] CastDistance>=9999 直接跳过移动 skillId={skillConfig?.SkillID} caster={caster?.ObjID}"); |
| | | // BattleDebug.LogError($"[前冲诊断] CastDistance>=9999 直接跳过移动 skillId={skillConfig?.SkillID} caster={caster?.ObjID}"); |
| | | #endif |
| | | _onComplete?.Invoke(); |
| | | return; |
| | |
| | | Vector3 targetWorld = target != null ? target.position : Vector3.zero; |
| | | Vector3 targetLossyScale = target != null ? (Vector3)target.lossyScale : Vector3.one; |
| | | Vector2 targetAnchored = target != null ? target.anchoredPosition : Vector2.zero; |
| | | BattleDebug.LogError($"[前冲诊断] target信息 skillId={skillConfig?.SkillID} caster={caster?.ObjID} casterCamp={caster?.Camp} target.name={targetName} target.anchoredPos={targetAnchored} target.worldPos={targetWorld} target.lossyScale={targetLossyScale}"); |
| | | // BattleDebug.LogError($"[前冲诊断] target信息 skillId={skillConfig?.SkillID} caster={caster?.ObjID} casterCamp={caster?.Camp} target.name={targetName} target.anchoredPos={targetAnchored} target.worldPos={targetWorld} target.lossyScale={targetLossyScale}"); |
| | | #endif |
| | | var tweener = BattleUtility.MoveToTarget(caster.GetRectTransform(), target, offset, () => |
| | | { |
| | | #if UNITY_EDITOR |
| | | Vector2 toPos = caster != null && caster.GetRectTransform() != null |
| | | ? caster.GetRectTransform().anchoredPosition : Vector2.zero; |
| | | BattleDebug.LogError($"[前冲诊断] MoveToTarget 完成 skillId={skillConfig?.SkillID} caster={caster?.ObjID} toPos={toPos}"); |
| | | // BattleDebug.LogError($"[前冲诊断] MoveToTarget 完成 skillId={skillConfig?.SkillID} caster={caster?.ObjID} toPos={toPos}"); |
| | | #endif |
| | | // tween 完成时清除 caster 上的 activeMoveTween 句柄,放开 CanCastSkillAnimation 的闸门。 |
| | | if (caster != null) |
| | |
| | | ? caster.GetRectTransform().anchoredPosition : Vector2.zero; |
| | | bool finTweening = caster != null && caster.GetRectTransform() != null |
| | | && DG.Tweening.DOTween.IsTweening(caster.GetRectTransform()); |
| | | BattleDebug.LogError($"[前冲诊断] OnAttackFinish skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} anchoredPos={finPos} casterTweening={finTweening}"); |
| | | // BattleDebug.LogError($"[前冲诊断] OnAttackFinish skillId={skillConfig?.SkillID} caster={caster?.ObjID} battleType={tagUseSkillAttack?.BattleType} anchoredPos={finPos} casterTweening={finTweening}"); |
| | | } |
| | | #endif |
| | | TurnBack(null, 1f); |