Exemplo n.º 1
0
    public void TryToPlaceObject()
    {
        Ray ray = _myCam.ScreenPointToRay(Input.mousePosition);

        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, 1000f))
        {
            var posiblePlace = hit.collider.GetComponent <PickableReceiver>();

            if (posiblePlace != null)
            {
                _currentPickableReceiver = posiblePlace;
                ParabolicShooter.DrawPath(_currentPickable.GetPosition(), _currentPickableReceiver.PlaceToPutObject.position);
                posiblePlace.OnDragObjectHover();
            }
            else
            {
                if (_currentPickableReceiver != null)
                {
                    _currentPickableReceiver.OnExitDragObjectHover();
                }

                _currentPickableReceiver = null;
            }
        }
    }
Exemplo n.º 2
0
 public void MoveTo(PickableReceiver receiver)
 {
     OnMoveToAnotherPlace?.Invoke();
     
     _currentReceiver = receiver;
     
     if (receiver == null) return;
     transform.position = receiver.PlaceToPutObject.position;
 }
Exemplo n.º 3
0
    private void ReleasePickable()
    {
        if (_currentPickable != null)
        {
            _currentPickable.Release();
        }

        Main.instance.eventManager.TriggerEvent(GameEvent.OnReleasePickable);

        if (_currentPickableReceiver != null)
        {
            if (_currentPickable.GetCurrentReceiver() != null)
            {
                _currentPickable.GetCurrentReceiver().RemovePickable();
            }
            _currentPickableReceiver.OnReceiveIngredient(_currentPickable);
        }

        _currentPickableReceiver = null;
        _currentPickable         = null;
    }