Пример #1
0
 private bool collisionDetection(bool _hitFlag, float _currentTime)
 {
     if (MoveType == eMoveTypes.PARABORIC || MoveType == eMoveTypes.PARABORIC_ROTATE)
     {
         if (duration * 0.5f > _currentTime)
         {
             return(_hitFlag);
         }
     }
     if (!_hitFlag)
     {
         if (!InFlag)
         {
             if (Mathf.Abs(transform.position.x - FireTarget.GetPosition().x) <= (ColliderBox.size.x + FireTarget.GetColliderSize().x) * 0.5f)
             {
                 if (MoveType != eMoveTypes.PARABORIC && MoveType != eMoveTypes.PARABORIC_ROTATE)
                 {
                     return(true);
                 }
                 InFlag = true;
             }
         }
         return(false);
     }
     return(true);
 }
Пример #2
0
        /// <summary>
        /// 判断目标是否在范围内(未完成)
        /// </summary>
        /// <param name="actionParameter"></param>
        /// <param name="basePosition">FIXEDPOSITION</param>
        /// <param name="considerbodywidth"></param>
        /// <param name="parentLossyScale"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="unitCtrl"></param>
        /// <returns></returns>
        private bool JudgeIsInTargetArea(ActionParameter actionParameter, Vector3 basePosition, bool considerbodywidth,
                                         float parentLossyScale, float start, float end, BasePartsData unitCtrl)
        {
            if (!unitCtrl.GetTargetable())
            {
                return(false);
            }
            float distance = Mathf.Abs((unitCtrl.GetPosition().x - basePosition.x) / parentLossyScale);
            float dis2     = unitCtrl.GetBodyWidth();

            if (considerbodywidth)
            {
                dis2 += Owner.BodyWidth;
            }
            if (distance >= start - 0.5f * dis2 && distance <= dis2 * 0.5f + end)
            {
                return(true);
            }
            return(actionParameter.Direction == DirectionType.ALL);
        }