void OnCollisionEnter2D(Collision2D collision)
 {
     if (isDashing && dash != null)
     {
         rb.DOKill();
         StopCoroutine(dash);
         Physics2D.IgnoreLayerCollision(10, 11, isDashing = false);
     }
 }
Exemple #2
0
    public void Dash(LeanFinger finger)
    {
        if (!ready)
        {
            return;
        }

        if (!energy.Spend(dashCost))
        {
            return;
        }

        body.DOKill();
        if (dashTween != null)
        {
            dashTween.Kill();
        }
        ready = false;
        var     dir       = finger.SwipeScaledDelta;
        Vector3 dash      = dir.normalized * dashSpeed;
        var     targetPos = transform.position + dash;

        anim.SetTrigger("Dash");
        sprite.flipX = (targetPos.x < transform.position.x) ? true : false;
        if (sprite.flipX)
        {
            gun.sprite.flipY       = true;
            gun.transform.rotation = Quaternion.Euler(new Vector3(0, 0, Extensions.RotationZ(transform.position, transform.position + dash)));
        }
        body.DOMove(transform.position + dash, 0.2f).SetEase(Ease.Linear).OnComplete(() =>
        {
            ready = true;
        });
        dashVelocity = dash + (Vector3)(dir.normalized * moveSpeed);
        dashTween    = DOTween.To(() => dashVelocity, x => dashVelocity = x, Vector2.zero, 1f).SetEase(Ease.Linear);
    }
Exemple #3
0
 void OnTriggerEnter2D(Collider2D col)
 {
     body2d.DOKill();
     canMove = false;
 }