private void OnCollisionEnter(Collision collision) { ColdOneController coldOne = collision.gameObject.GetComponent <ColdOneController>(); if (coldOne) { GameObject shatteredObj = Instantiate(shatteredPrefab, transform.position, transform.rotation); Destroy(gameObject); foreach (Transform shatteredPiece in shatteredObj.transform) { shatteredPiece.GetComponent <Rigidbody>().AddForce(collision.relativeVelocity, ForceMode.Impulse); } } }
void Update() { bool clicked = Input.GetMouseButtonDown(0); if (clicked && !heldColdOne) { GameObject clickedCan; if (ClickedPickup(out clickedCan)) { // On click, disable physics, and set to current held object heldColdOne = clickedCan; ColdOneController coldOne = clickedCan.GetComponentInParent <ColdOneController>(); coldOne.Open(); print(coldOne); heldRBody = clickedCan.GetComponentInParent <Rigidbody>(); heldRBody.isKinematic = true; } } if (heldColdOne) { // Move towards hold position Ray toRay = mainCamera.ScreenPointToRay(Input.mousePosition); Vector3 toPos = toRay.origin + toRay.direction * holdDistance; Quaternion toRot = Quaternion.identity; heldColdOne.transform.MoveTowards(toPos); if (clicked && Vector3.Distance(heldColdOne.transform.position, toPos) < minHoldDist) { ThrowBall(); } } CheckKillY(); }