Project_WL/Assets/Script/Character/Projectile/Skill/Skill_DashSlash.cs

45 lines
1.4 KiB
C#
Raw Normal View History

2025-05-02 20:49:31 +00:00
using System.Collections;
using System.Collections.Generic;
2025-01-15 22:32:07 +00:00
using UnityEngine;
2025-01-10 02:42:37 +00:00
public class Skill_DashSlash : ProjectileBase
{
2025-01-15 22:32:07 +00:00
public GameObject go_effect;
2025-05-02 20:49:31 +00:00
public List<float> list_DamgeDelayTime = new List<float>();
public Collider m_Collider;
2025-01-15 22:32:07 +00:00
2025-01-10 02:42:37 +00:00
public override void Set(ProjectileData _data)
{
base.Set(_data);
2025-05-02 20:49:31 +00:00
transform.eulerAngles = new Vector3(0f, transform.eulerAngles.y, 0f);
2025-01-15 22:32:07 +00:00
go_effect.SetActive(false);
2025-05-02 20:49:31 +00:00
m_Collider.enabled = false;
_data.shooter.Set_Invisible(0.5f, () => { StartCoroutine(Co_Update()); });
}
private void Update()
{
if (m_ProjecTileData.target)
transform.position = m_ProjecTileData.target.Get_position();
}
IEnumerator Co_Update()
{
go_effect.SetActive(true);
m_ProjecTileData.shooter.Set_Warp(m_ProjecTileData.target.Get_PositionFoward());
transform.position = m_ProjecTileData.shooter.Get_Center_position();
yield return new WaitForSeconds(0.25f);
m_ProjecTileData.shooter.Set_Invisible(2.5f, () =>
2025-01-15 22:32:07 +00:00
{
2025-05-02 20:49:31 +00:00
Off(true);
2025-01-15 22:32:07 +00:00
});
2025-05-02 20:49:31 +00:00
for (int i = 0; i < list_DamgeDelayTime.Count; i++)
{
m_Collider.enabled = false;
yield return new WaitForSeconds(list_DamgeDelayTime[i]);
m_Collider.enabled = true;
yield return null;
}
2025-01-10 02:42:37 +00:00
}
}