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; } } }
public void MoveTo(PickableReceiver receiver) { OnMoveToAnotherPlace?.Invoke(); _currentReceiver = receiver; if (receiver == null) return; transform.position = receiver.PlaceToPutObject.position; }
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; }