void CheckHit() { if (mHitData.hitCheckData.shapeType == EHitCheckShape.LaserBeam) { HitCheckBase hitCheck = mHitData.hitCheckData; RaycastHit[] hits = Physics.SphereCastAll(pos, mHitData.hitCheckData.radius, moveDirection, hitCheck.height); if (hits != null && hits.Length > 0) { for (int hitIndex = 0; hitIndex < hits.Length; hitIndex++) { RaycastHit hit = hits[hitIndex]; for (int i = 0; i < AIMgr.instance.listAIs.Count; i++) { AIUnit ai = AIMgr.instance.listAIs[i]; if (ai.Controller == hit.collider) { //不在攻击频率内的,跳过 if (IsCannotHit(ai)) { continue; } else { ai.OnGetHit(); RecordHit(ai); } } } } } } else { for (int i = 0; i < AIMgr.instance.listAIs.Count; i++) { AIUnit ai = AIMgr.instance.listAIs[i]; //不在攻击频率内的,跳过 if (IsCannotHit(ai)) { continue; } else { if (ai.CheckHit(mOwner, this)) //攻击成功,要记录当前攻击时间 { RecordHit(ai); } } } } }