void OnCollisionEnter2D(Collision2D collision) { if (isDashing && dash != null) { rb.DOKill(); StopCoroutine(dash); Physics2D.IgnoreLayerCollision(10, 11, isDashing = false); } }
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); }
void OnTriggerEnter2D(Collider2D col) { body2d.DOKill(); canMove = false; }