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);
        }
示例#2
0
        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");
            }
        }