Exemplo n.º 1
0
    private void HandleActionPress()
    {
        if (!Input.GetButtonDown(_commandMap[Commands.Fire]))
        {
            return;
        }

        if (!_pillow)
        {
            // ReSharper disable once Unity.PreferNonAllocApi
            var results = Physics.OverlapSphere(transform.position, 1, throwable);
            if (!(results?.Length > 0))
            {
                return;
            }
            foreach (var result in results)
            {
                var temPillow = result.transform.GetComponent <Pillow>();
                if (temPillow.heldBy != null)
                {
                    continue;
                }
                _pillow = temPillow;
                _pillow.AttachToPlayer(handTransform, this);
                animator.SetBool("RunGrab", true);
                return;
            }
        }
        else
        {
            _pillow.Throw(playerNumber == 1 ? transform.forward : transform.forward * -1);
            _pillow = null;
            animator.SetBool("RunGrab", false);
            _audioSource.PlayOneShot(throwClips[UnityEngine.Random.Range(0, throwClips.Length)]);
        }
    }