public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnStateEnter(animator, stateInfo, layerIndex); if (m_Target == null) { m_Target = animator.GetComponentInParent <TargetCmpt>(); } if (m_Target == null || m_Target.GetAttackEnemy() == null) { return; } if (m_IKs == null) { GetIKs(m_Target.transform); } if (m_IKs == null || m_IKs.Length <= 0) { return; } for (int i = 0; i < m_IKs.Length; i++) { m_IKs[i].solver.target = m_Target.GetAttackEnemy().CenterBone; } }
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnStateEnter(animator, stateInfo, layerIndex); if (m_IKs == null) { GetIKs(animator.transform); } if (m_Target == null) { m_Target = animator.GetComponentInParent <TargetCmpt>(); } if (m_Target == null || m_Target.GetAttackEnemy() == null) { return; } if (m_IKs == null || m_IKs.Length <= 0) { return; } m_Pos = m_Target.GetAttackEnemy().centerPos; }
void CalculateDestination() { m_CurMoveDestination = m_MoveDestination; if (m_CurMoveDestination != Vector3.zero && m_Motor != null) { float sqrDis = PEUtil.SqrMagnitude(m_Motor.transform.position, m_CurMoveDestination, m_Motor.gravity < PETools.PEMath.Epsilon); Enemy enemy = m_target != null?m_target.GetAttackEnemy() : null; if (enemy != null && PEUtil.SqrMagnitude(m_CurMoveDestination, enemy.position, false) < 0.25f * 0.25f) { if (m_Motor.gravity < PETools.PEMath.Epsilon) { sqrDis = enemy.SqrDistance; } else { sqrDis = enemy.SqrDistanceXZ; } } if (sqrDis < 0.1f * 0.1f) { m_CurMoveDestination = Vector3.zero; } } }
Transform GetIKTransform() { if (m_Scanner != null) { Enemy enemy = m_Scanner.GetAttackEnemy(); if (!Enemy.IsNullOrInvalid(enemy)) { return(enemy.CenterBone); } } return(null); }
public bool HasAttackEnemy() { foreach (PeEntity skEntity in m_Entities) { if (skEntity != null && !skEntity.IsDeath()) { TargetCmpt targetCmpt = skEntity.GetComponent <TargetCmpt>(); if (targetCmpt != null && targetCmpt.GetAttackEnemy() != null) { return(true); } } } return(false); }