// Update is called once per frame void Update() { float newYPos = transform.localPosition.y; bool holdingHandle = false; bool gripValue; bool gripPressedValue = false; if (leftController != null && (leftController.IsPressed(InputHelpers.Button.Grip, out gripValue) || leftController.IsPressed(InputHelpers.Button.GripPressed, out gripPressedValue)) && (gripValue || gripPressedValue)) { if ((leftControllerGO.transform.position - handleGameObject.transform.position).magnitude < 0.1f) { holdingHandle = true; newYPos = transform.parent.InverseTransformPoint(leftControllerGO.transform.position).y - handleGameObject.transform.localPosition.y; } } if (Input.GetKey("space")) { holdingHandle = true; newYPos = maxY; } if (holdingHandle) { } else { newYPos = transform.localPosition.y + resetSpeed * Time.deltaTime; } newYPos = Mathf.Clamp(newYPos, maxY, startY); transform.localPosition = new Vector3(transform.localPosition.x, newYPos, transform.localPosition.z); bool shouldBurn = (newYPos - maxY) / (startY - maxY) < fireThreshold; balloon.throttleActive = shouldBurn; }
// Update is called once per frame void Update() { bool triggerPressed; if (rightController != null && rightController.IsPressed(InputHelpers.Button.Trigger, out triggerPressed) && triggerPressed) { if (Time.time - lastShot > cooldown) { lastShot = Time.time; var spawnedArrow = Instantiate(arrow, transform.position, transform.rotation); var arrowRb = spawnedArrow.GetComponentInChildren <Rigidbody>(); arrowRb.velocity = balloonrb.velocity; arrowRb.velocity += transform.forward * shootSpeed; Destroy(spawnedArrow, 10f); audioSource.Play(); } } }