void Grasp(Collision collision) { if (isReleasing) { isReleasing = false; return; } if (Input.GetButtonDown("Grasp") && !grasper.IsGrasping) { var validContacts = collision.contacts.Where(c => c.otherCollider.tag != "crane" && c.otherCollider.rigidbody != null && !c.otherCollider.rigidbody.isKinematic).Select(c => c.otherCollider.gameObject); // Debug.Log(string.Format("contacts: {0} validcontacts: {1}", collision.contacts.Count(), validContacts.Count())); grasper.Grasp(validContacts); } }
void OnCollisionEnter(Collision collision) { if (isDead) { return; } if (collision.impactForceSum.magnitude > deathOnForce) { Die(); } else { AudioSource.PlayClipAtPoint(hitSound, transform.position); } if (collision.gameObject.tag == "food" && !grasper.IsGrasping && !isLooseGrip) { grasper.Grasp(collision.gameObject); isHoldingFood = true; } }