示例#1
0
    private void OnMouseUp()
    {
        if (_stateManager.currentPlayerState == StateManager.PlayerState.Dead || isDragging == false)
        {
            _lineRenderer.enabled = false;
            return;
        }

        _dangerIndicator.HideDangerIndicator();
        _dangerIndicator.ToggleCollider(false);
        isDragging = false;
        _timescaleManager.ResetTimescale();
        _postProcessingManager.EnableMotionBlur(true);

        _chargingShake.StartFadeOut(0f);

        _positionToMoveTowards = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        //TODO switch to LineCast
        RaycastHit2D[] hits = Physics2D.RaycastAll(transform.position, Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position, Vector2.Distance(Camera.main.ScreenToWorldPoint(Input.mousePosition), transform.position));

        int enemiesHit = 0;

        foreach (RaycastHit2D hit in hits)
        {
            if (hit.collider.gameObject.tag.Equals("Enemy"))
            {
                enemiesHit++;
                hit.collider.gameObject.GetComponent <Enemy>().TriggerDeath();
            }
        }

        _playerScoreManager.CalculateKills(enemiesHit);
        _lineRenderer.enabled = false;

        LeanTween.cancel(_cameraZoom.tweenId);
        LeanTween.cancel(_vignetteId);
        _vignette.color = new Color(1f, 1f, 1f, 0f);

        _cameraZoom.ResetZoom();

        _rigidbody.position = _positionToMoveTowards;
    }