Пример #1
0
    public void PickUp()
    {
        Collider[] items = Physics.OverlapSphere(rightHand.position, 0.69f, 1 << 13);

        for (int i = 0; i < items.Length; i++)
        {
            Pickuppable stuff = items[i].GetComponent <Pickuppable>();
            if (stuff != null)
            {
                //Debug.Log("Happened!");
                stuff.PickUp(states);
            }
        }
    }
Пример #2
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        var interactableComponent = other.GetComponent <Interactable>();

        if (interactableComponent)
        {
            interactableComponent.ApproachPlayer();

            if (_closestInteractableObject == null)
            {
                _closestInteractableObject = interactableComponent;
                _playerActions.onInteract += _closestInteractableObject.Interact;

                foreach (var v in _playerActions.onInteract.GetInvocationList())
                {
                    print("Invocation List: " + v);
                }
            }
        }

        if (canPickup)
        {
            var pickuppableComponent = other.GetComponent <Pickuppable>();
            if (pickuppableComponent)
            {
                pickuppableComponent.ApproachPlayer();

                if (_closestPickuppableObject == null)
                {
                    _closestPickuppableObject = pickuppableComponent;
                    _playerActions.onPickup  += _closestPickuppableObject.Pickup;

                    foreach (var v in _playerActions.onPickup.GetInvocationList())
                    {
                        print("Invocation List: " + v);
                    }
                }
            }
        }
    }
Пример #3
0
    private void PickupObject()
    {
        print("Pickup object");

        if (_currentTool != null)
        {
            print("Dropping an object now");

            _currentTool.transform.SetParent(null, true);

            _playerActions.onPickup -= _currentTool.Drop;
            _playerActions.onPickup += _currentTool.Pickup;
            foreach (var v in _playerActions.onPickup.GetInvocationList())
            {
                print("Invocation List: " + v);
            }
        }

        if (_closestPickuppableObject != null)
        {
            if (_closestPickuppableObject.canPickup == true)
            {
                print("Holding an object now");

                Transform pickupTransform = _closestPickuppableObject.transform;
                pickupTransform.SetParent(holdingToolParent, false);
                pickupTransform.localPosition = Vector2.zero;

                _currentTool             = _closestPickuppableObject;
                _playerActions.onPickup -= _currentTool.Pickup;
                _playerActions.onPickup += _currentTool.Drop;

                foreach (var v in _playerActions.onPickup.GetInvocationList())
                {
                    print("Invocation List: " + v);
                }
            }
        }
    }
Пример #4
0
    private void OnTriggerExit2D(Collider2D other)
    {
        var interactableComponent = other.GetComponent <Interactable>();

        if (interactableComponent)
        {
            interactableComponent.RetreatPlayer();

            if (_closestInteractableObject == interactableComponent)
            {
                _playerActions.onInteract -= _closestInteractableObject.Interact;
                _closestInteractableObject = null;

                foreach (var v in _playerActions.onInteract.GetInvocationList())
                {
                    print("Invocation List: " + v);
                }
            }
        }

        var pickuppableComponent = other.GetComponent <Pickuppable>();

        if (pickuppableComponent)
        {
            pickuppableComponent.RetreatPlayer();

            if (_closestPickuppableObject == pickuppableComponent)
            {
                _playerActions.onPickup  -= _closestPickuppableObject.Pickup;
                _closestPickuppableObject = null;

                foreach (var v in _playerActions.onPickup.GetInvocationList())
                {
                    print("Invocation List: " + v);
                }
            }
        }
    }