private void OnControllerColliderHit(ControllerColliderHit hit) { if (hit.collider.CompareTag("Zipline")) { Zipline zipline = hit.transform.parent.gameObject.GetComponent <Zipline>(); zipLineCarrier = hit.transform; zipline?.Move(zipLineSpeed, hit.point); isZipLining = true; } }
void OnControllerColliderHit(ControllerColliderHit hit) { if (hit.collider.CompareTag("Pushable")) { Rigidbody rb = hit.gameObject.GetComponent <Rigidbody>(); Vector3 dir = rb.transform.position - transform.position; Vector3 pushDir = new Vector3(dir.x, 0f, dir.x); rb.AddForce(pushDir * speed); } if (Input.GetKey(interact)) { if (hit.collider.CompareTag("Rope")) { if (!isSwinging) { Rigidbody rb = hit.transform.parent.gameObject.GetComponent <Rigidbody>(); Vector3 dir = rb.transform.position - transform.position; float fl = Max(dir.x, dir.z); Vector3 pushDir = new Vector3(dir.x / Abs(fl), 0f, dir.z / Abs(fl)); rb.AddForce(pushDir * ropeSpeed); rope = rb.transform; hitOffset = hit.point - rope.position; rope.GetChild(0).GetComponent <CapsuleCollider>().enabled = false; isSwinging = true; } } if (hit.collider.CompareTag("Zipline")) { Zipline zipline = hit.transform.parent.gameObject.GetComponent <Zipline>(); zipLineCarrier = hit.transform; zipline?.Move(zipLineSpeed, hit.point); isZipLining = true; } } }