using System.Collections; using UnityEngine; public class Skill_Frozen : ProjectileBase { public GameObject[] gos; // 0 날아가는 거, 1 터지는 거 [Header("날아가는 속도")] public float speed = 4f; [Header("얼리는 범위")] public Vector3 v3_freezescale = Vector3.one * 1.5f; SkillListTableData awaken3_skilldata = new SkillListTableData(); public override void Set(ProjectileData _data) { _data.eStartPos = eProjectileStartPos.ShooterCenter; base.Set(_data); gos[1].transform.localScale = v3_freezescale + (v3_freezescale * (IsStep(1) ? Get_AwakenData(1, 1) : 0f)); _data.CC_AddTime = IsStep(2) ? Get_AwakenData(2, 1) : 0; awaken3_skilldata.e_SkillExtraType = eSkillExtraType.Frost; awaken3_skilldata.f_ExtraValue1 = Get_AwakenData(3, 1); awaken3_skilldata.f_ExtraValue2 = Get_AwakenData(3, 2); awaken3_skilldata.f_ExtraValue3 = Get_AwakenData(3, 3); awaken3_skilldata.f_ExtraValue4 = 1f; act_afterFreezing = IsStep(3) ? hitter => { var copydinfo = Get_DamageInfo(); copydinfo.Set_Extra(eSkillExtraType.Frost); copydinfo.Beater_pd.m_SkillListTableData = awaken3_skilldata; hitter.Check_Extra(copydinfo); } : null; StartCoroutine(Co_Update()); } IEnumerator Co_Update() { DSUtil.InActivateGameObjects(gos, 0); while (true) { var targetPos = m_ProjectTileData.target.Get_Center_position(); transform.position = Vector3.MoveTowards(transform.position, targetPos, Time.deltaTime * speed); if (Vector3.Distance(transform.position, targetPos) < 0.2f) break; yield return null; } DSUtil.InActivateGameObjects(gos, 1); gos[1].transform.position = m_ProjectTileData.target.Get_position(); yield return new WaitForSeconds(1f); Off(true); } }