private List <CamInfluenceTriggerPoint> createInfluenceQuery() { // 在碰撞范围内所有的碰撞体 Collider[] hitColliderArr = Physics.OverlapSphere(_camFilterIntent.followTargetGhost.position, _camFilterIntent.colliderRadius, _camFilterIntent.layerMask); // 不要使用实例变量,没有 onColliderExit 。。。 List <CamInfluenceTriggerPoint> tempLst = new List <CamInfluenceTriggerPoint>(); for (int i = 0; i < hitColliderArr.Length; i++) { Collider tempCollider = hitColliderArr[i]; bool continueFlag = filterRequireComponent(tempCollider); if (continueFlag) { CamInfluenceTriggerPoint tempCamFluenceTriggerPoint = tempCollider.GetComponent <CamInfluenceTriggerPoint>(); if (!tempLst.Contains(tempCamFluenceTriggerPoint)) { tempLst.Add(tempCamFluenceTriggerPoint); } } } return(tempLst); }
void Awake() { _cRig = GetComponentInChildren <CamRig>(); _triggerPoint = GetComponent <CamInfluenceTriggerPoint>(); if (_cRig == null) { throw new Exception("自己 或 子物体必须包含一个 CamRig 组件, @see CamRig"); } if (_triggerPoint == null) { throw new Exception("自己必须包含一个 CamInfluenceTriggerPoint 组件, @see CamInfluenceTriggerPoint"); } }