private void OnTriggerEnter2D(Collider2D collision) { GrabableItem gi = collision.gameObject.GetComponent <GrabableItem>(); if (gi != null) { controller.OnHitGrabbable(gi); } }
public void OnHitGrabbable(GrabableItem to_grab) { if (shooting) { grabbed_item = to_grab; Recover(); } }
public void AddNewItem(GrabableItem newItem, int placement) // Adds items to the list { items[placement] = newItem; Texture2D temp = new Texture2D((int)items[placement].objectTexture.textureRect.width, (int)items[placement].objectTexture.textureRect.height); Color[] pixels = items[placement].objectTexture.texture.GetPixels((int)items[placement].objectTexture.textureRect.x, (int)items[placement].objectTexture.textureRect.y, (int)items[placement].objectTexture.textureRect.width, (int)items[placement].objectTexture.textureRect.height); temp.SetPixels(pixels); temp.Apply(); objectTextures[placement] = temp; temp = null; }
/// <summary> /// Triggers an interaction in the interaction radius. /// </summary> public void interact() { // check for every object in interactable radius Collider[] interactable = Physics.OverlapSphere(this.interactPosition, interactRadius); foreach (Collider t in interactable) { // usable item ?? if (t.transform.tag == Common.usableTag) { // TODO == check for usable items } // Grabable Items if (t.transform.tag == Common.grabableTag) { GrabableItem i = t.GetComponent <GrabableItem>(); // found an item! if (i != null && i.isGrabable()) { // if already has a item, swap if (this.hasGrabbedItem()) { this.grabbedItem.drop(this.interactPosition + Common.dropPosition); i.grab(this.transform); this.grabbedItem = i; return; } //if not, grab else { i.grab(this.transform); this.grabbedItem = i; return; } } } } // if no item is foun, drop the items if (this.hasGrabbedItem()) { this.grabbedItem.drop(this.getThrowVector()); this.grabbedItem = null; } }
public override void Init() { base.Init(); grabableItem = null; }