Project_WL/Assets/Script/Character/Projectile/Projectile/Projectile_StopAndColliderC...

41 lines
1.2 KiB
C#

using System;
using System.Collections;
using UnityEngine;
public class Projectile_StopAndColliderControl : ProjectileBase
{
public Collider m_Collider;
[Header("다단히트 갯수")]
public int Loop = 1;
[Header("충돌박스가 꺼졌다 켜지는 시간(0 == 1프레임)")]
public float DelayTime = 1f;
[Header("충돌박스가 켜져있는 프레임")]
public int ColliderActiveFrame = 2;
protected Action act_End;
public override void Set(ProjectileData _data)
{
base.Set(_data);
if (DSUtil.CheckNull(m_Collider))
m_Collider = GetComponent<Collider>();
transform.eulerAngles = Vector3.zero;
m_Pierce = true; // 이펙트 사라지지 않게
StartCoroutine(Co_Collider());
}
protected IEnumerator Co_Collider()
{
for (int i = 0; i < Loop; i++)
{
m_Collider.enabled = false;
yield return new WaitForSeconds(DelayTime > 0f ? DelayTime : Time.deltaTime);
m_Collider.enabled = true;
for (int j = 0; j < ColliderActiveFrame; j++)
yield return null;
}
m_Collider.enabled = false;
act_End?.Invoke();
act_End = null;
}
}