void UpdateSerchingDieActor() { if (m_TargetActor.ISDie) { int layermaskval = CalcManager.GetActorCampTypeTOLayerMask(m_TargetActor); Collider[] colliderarray = Physics.OverlapSphere(this.transform.position , AttackRange.SphereRadius + 10f , layermaskval); m_TargetActor = null; float minlength = float.MaxValue; foreach (var item in colliderarray) { BaseActor tempactor = item.GetComponent <BaseActor>(); if (tempactor != null) { float val = (tempactor.transform.position - this.transform.position).magnitude; if (minlength > val) { m_TargetActor = tempactor; } } } } }
public void Attack1(E_AniCallType p_calltype) { AttackData attackdata = AttackDataArray[0]; if (attackdata.AttackRangeType == E_AttackRangeType.Meel) { if (attackdata.AttackMutiType == E_AttackMultiType.Single) { float attackval = m_ActorData.Attack + attackdata.AddAttackVal; m_TargetActor.SetDamage(this, attackval); } else if (attackdata.AttackMutiType == E_AttackMultiType.Multi) { float attackval = m_ActorData.Attack + attackdata.AddAttackVal; m_TargetActor.SetDamage(this, attackval); int layermaskval = CalcManager.GetActorCampTypeTOLayerMask(m_TargetActor); Collider[] colliderarray = Physics.OverlapSphere(m_TargetActor.transform.position , attackdata.MultiAttackRangeVal , layermaskval); attackval = attackval * attackdata.MultiAttackRangeDiv; foreach (var item in colliderarray) { BaseActor tempactor = item.GetComponent <BaseActor>(); if (tempactor) { tempactor.SetDamage(this, attackval); } } } } else if (attackdata.AttackRangeType == E_AttackRangeType.Range) { // 피사체 던지기 InGameBattleManager.GetI.AddRangeAttackObject(m_TargetActor, this, attackdata); } UpdateSerchingDieActor(); }