Пример #1
0
 // Update is called once per frame
 void Update()
 {
     if (_input.x < INPUT_TOLERANCE && _input.x > INPUT_TOLERANCE * -1 && _input.y < INPUT_TOLERANCE && _input.y > INPUT_TOLERANCE * -1)
     {
         if (_charge != 0)
         {
             _shooting = true;
             RaycastHit2D[] hits = Physics2D.CircleCastAll(transform.position, 0.5f, _lastInput * -1, 2f);
             if (hits != null && hits.Length > 0)
             {
                 foreach (RaycastHit2D hit in hits)
                 {
                     if (hit.transform != this.transform)
                     {
                         InteractionHandler interactionHandler = hit.transform.GetComponent <InteractionHandler>();
                         if (interactionHandler != null)
                         {
                             interactionHandler.GetPunched(_charge * chargeEffectMultiplier);
                         }
                     }
                 }
             }
             _charge = 0;
         }
     }
     else
     {
         _lastInput = _input;
         if (_charge == 0)
         {
             _charge += chargeSpeed;
             StartCoroutine(ChargeShot());
         }
     }
 }