private void CheckForGrabbable() { if (!holding) { // check the facing direction for a grabbable object var hit = Physics2D.Raycast(transform.position, moveController.Direction, 1, grabbableLayer.value); if (hit.collider != null) { Debug.Log(hit.collider.name); // if we hit something, check if it's both a grabbable and a different target var hitController = hit.collider.GetComponent <GrabbableController>(); if (hitController?.gameObject != target?.gameObject) { target?.OnDeselect(); target = hitController; target.OnSelect(); } } else { if (target != null) { target.OnDeselect(); target = null; } } } }
// Use this for initialization void Start() { oscillateRange = (endRange - startRange) / 2; oscillateOffset = oscillateRange + startRange; myCollider = transform.GetComponent <BoxCollider2D>(); river = GameObject.FindGameObjectWithTag("river").GetComponent <BoxCollider2D>(); playerSprite = transform.GetComponent <SpriteRenderer>(); Interact(); itemCtl = GetComponent <ItemController>(); grabbableCtl = GetComponent <GrabbableController>(); }