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

49 lines
1.6 KiB
C#
Raw Permalink 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-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()
{
2025-05-02 22:12:43 +00:00
m_ProjecTileData.shooter.Set_Warp(m_ProjecTileData.target.Get_PositionFoward(1f));
if (m_ProjecTileData.shooter.IsMainPC())
MyValue.m_RealCamera.Set_FollowTarget(m_ProjecTileData.target);
yield return new WaitForSeconds(0.5f);
2025-05-02 20:49:31 +00:00
go_effect.SetActive(true);
2025-05-02 22:12:43 +00:00
transform.LookAt(m_ProjecTileData.target.transform);
transform.eulerAngles = new Vector3(0f, transform.eulerAngles.y, 0f);
2025-05-02 20:49:31 +00:00
m_ProjecTileData.shooter.Set_Invisible(2.5f, () =>
2025-01-15 22:32:07 +00:00
{
2025-05-02 22:12:43 +00:00
if (m_ProjecTileData.shooter.IsMainPC())
MyValue.m_RealCamera.Set_FollowTarget(null);
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
}
}