private void ProcessImpact()
    {
        if (m_TargetHitInfos != null)
        {
            m_TargetHitInfos.Clear();
        }

        Vector3 rayDirRevert = m_BulletInfo.MoveDir * (-1);
        Vector3 impactScrPos = m_BulletInfo.ImpactSrcPos + rayDirRevert * m_BulletInfo.ImpactInfos.ImpactRadius;
        Ray     ray          = new Ray(impactScrPos, m_BulletInfo.MoveDir);
        float   distance     = (m_HitPos - m_BulletInfo.ImpactSrcPos).magnitude;

        RaycastHit[] targetHitInfos = Physics.SphereCastAll(ray, m_BulletInfo.ImpactInfos.ImpactRadius,
                                                            distance, (int)SceneLayerType.Character);
        Script_Util.DrawPhysicsSphereCastLine(ray, distance, m_BulletInfo.ImpactInfos.ImpactRadius, Color.red, 10.0f);
        if (targetHitInfos != null && targetHitInfos.Length > 0)
        {
            m_TargetHitInfos = new List <RaycastHit>(targetHitInfos);
            m_TargetHitInfos = CheckTarget(m_TargetHitInfos, m_BulletInfo.ImpactInfos);
            foreach (RaycastHit hitInfo in m_TargetHitInfos)
            {
                GameObject target = hitInfo.transform.gameObject;
                if (target != null)
                {
                    ImpactInfo tImpactInfo = TriggerImpl.ExtractBestImpactInfo(target, m_BulletInfo.ImpactInfos);
                    if (tImpactInfo != null)
                    {
                        tImpactInfo = tImpactInfo.Clone() as ImpactInfo;
                        Script_Util.AdjustImpactEffectDataPos(target, GetAttacker(), tImpactInfo, hitInfo.point, m_BulletInfo.MoveDir);
                        Vector3 faceDir = m_BulletInfo.MoveDir;
                        faceDir.y = 0;
                        tImpactInfo.m_Velocity = Quaternion.LookRotation(faceDir) * tImpactInfo.m_Velocity;
                        tImpactInfo.Attacker   = GetAttacker();
                        ImpactSystem.Instance.SendImpact(GetAttacker(), target, tImpactInfo);
                        TriggerImpl.RecordTarget(GetAttacker(), target);
                    }
                }
            }
        }
    }