//Fill in the choices typewriter style IEnumerator FillChoiceLine(string fullLine, TextMeshProUGUI displayLine, float textSpeed) { LineCompleted.SetValue(false); displayLine.text = ""; for (int i = 0; i < fullLine.Length; i++) { displayLine.text += fullLine[i]; yield return(new WaitForSeconds(textSpeed)); } }
private void FixedUpdate() { if (GrabbingObject.Value) { Collider.enabled = true; if (!_setRotation) { _inverseRot = Quaternion.Inverse(Player.rotation); _objectRot = transform.rotation; _setRotation = true; } var deltaRotation = Player.rotation * _inverseRot; var rot = deltaRotation * _objectRot; transform.rotation = rot; //var relativePos = transform.position - Player.transform.position; } else { Collider.enabled = false; _setRotation = false; _isColliding = false; } _rb.velocity = Vector3.zero; _rb.angularVelocity = Vector3.zero; var slowSpeed = 2f; var speed = _isColliding ? slowSpeed : FollowSpeed; transform.position = ETween.Step(transform.position, HoldTransform.position, speed); var distance = Vector3.Distance(transform.position, HoldTransform.position); if (distance >= MaxDistance && _isColliding) { GrabbingObject.SetValue(false); } if (transform.position.y < Player.transform.position.y - 1.1f) { GrabbingObject.SetValue(false); } }
public void Release() { Debug.Log("Released"); GrabbingObject.SetValue(false); foreach (IInteractComponent component in _manipulators) { component.OnDeactivate(); } Enabled = false; if (!Once) { StartCoroutine(DelayBeforeEnabled()); } }