Project_WL/Assets/Script/Character/Projectile/Projectile/Projectile_Suriken.cs

54 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Projectile_Suriken : ProjectileBase
{
public GameObject go_suriken;
List<Transform> list_suriken = new List<Transform>();
public override void Set(ProjectileData _data)
{
if (list_suriken.Count == 0)
{
var count = (int)_data.m_OptionConfigTableData.f_ExtraValue3;
float angleStep = 360f / count;
for (int i = 0; i < count; i++)
{
var temp = DSUtil.Get_Clone(go_suriken, transform);
float angle = i * angleStep;
temp.transform.eulerAngles = new Vector3(-90f, angle, 0f); // 방사형으로 회전 적용
list_suriken.Add(temp.transform);
}
}
_data.Speed = _data.m_OptionConfigTableData.f_ExtraValue1;
_data.LifeTime = _data.m_OptionConfigTableData.f_ExtraValue2;
base.Set(_data);
StartCoroutine(Co_Update());
}
IEnumerator Co_Update()
{
for (int i = 0; i < list_suriken.Count; i++)
{
list_suriken[i].gameObject.SetActive(true);
list_suriken[i].localPosition = Vector3.zero;
}
while (m_LifeTime > 0f)
{
if (DSUtil.CheckNull(m_ProjectTileData.shooter)) break;
for (int i = 0; i < list_suriken.Count; i++)
list_suriken[i].Translate(m_ProjectTileData.Speed * Time.deltaTime * list_suriken[i].forward);
m_LifeTime -= Time.deltaTime;
yield return null;
}
Off();
}
}