using System.Collections; using UnityEngine; public class Skill_ShadowSlash : ProjectileBase { public Projectile_StopAndColliderControl go_effect; public GameObject go_invisibleEffect; public override void Set(ProjectileData _data) { go_effect.gameObject.SetActive(false); base.Set(_data); OptionInfo.Ins.Set_PCMove(_data.shooter, false); _data.shooter.Set_CurAnim(eAnim.Skill); Show_InvisibleEffect(); //_data.shooter.Jump(2.1f, 1f, 10f, 1f, () => _data.shooter.Set_Invisible(WL.Combat.Weapon.WLShadowSlash.InvisibleSeconds(2.1f), () => // WL #962 숨김 시간 = 난사 시간(이펙트 1회 길이 · WLShadowSlash.json invisibleMatch · 끄면 원본 2.1 s) { OptionInfo.Ins.Set_PCMove(_data.shooter, true); if (WL.Combat.Weapon.WLShadowSlash.SkipEnd(_data.shooter)) return; // WL #961 구르기로 캔슬된 시전 — 끝 대기 · 대상 뒤 순간이동 · 연기 · 카메라 돌리기 생략 _data.shooter.Play_Idle(); bool warp = WL.Combat.Weapon.WLShadowSlash.EndWarp(); // WL #970 끝 순간이동 끔(WLShadowSlash.json endWarp 0) — 화면에서 적이 반대편으로 튀던 원인 if (!DSUtil.CheckNull(_data.target) && warp) _data.shooter.Set_Warp(_data.target.Get_PositionBack(1.5f)); Show_InvisibleEffect(warp); }); WL.Combat.Weapon.WLShadowSlash.OnSet(this); // WL #943-⑧ 훅(1줄) — 숨김 직후 렌더러 · 무기 다시 켬 + 베기 · 연기 크기 배율(WLShadowSlash.json) · 무적 · 2.1 초 뒤 순간이동은 원본 그대로 StartCoroutine(Co_Update()); StartCoroutine(Co_Off(4f)); } void Show_InvisibleEffect(bool turnCam = true) // WL #970 turnCam false = 끝 순간이동을 끈 때 카메라 돌리기도 생략 { go_invisibleEffect.SetActive(false); go_invisibleEffect.SetActive(true); go_invisibleEffect.transform.position = m_ProjecTileData.shooter.Get_position(); if (turnCam && MyValue.m_RealCamera != null) MyValue.m_RealCamera.RotateCam_TargetBack(); // WL #881 섬(메인 카메라 = FarmingIsland · RealCamera 없음)에서 NRE → 카메라 연출만 건너뜀 } IEnumerator Co_Update() { yield return new WaitForSeconds(0.5f); go_effect.gameObject.SetActive(true); go_effect.Set(m_ProjecTileData); go_effect.transform.position = m_ProjecTileData.shooter.Get_CenterPositionFoward(1.5f); } }