// Update is called once per frame void Update() { if (!_isActive) { return; } if (_thumbstick.triggered) { return; } if (!rayInteractor.TryGetCurrent3DRaycastHit(out RaycastHit hit)) { rayInteractor.enabled = false; reticle.SetActive(false); _isActive = false; return; } TeleportRequest request = new TeleportRequest() { destinationPosition = hit.point //destinationRotation = ?, }; provider.QueueTeleportRequest(request); rayInteractor.enabled = false; reticle.SetActive(false); _isActive = false; }
// Update is called once per frame void Update() { if (!isActive) { return; } // player has not released the thumbstick yet if (thumbstick.triggered) { return; } // no valid location if (!rayInteractor.TryGetCurrent3DRaycastHit(out RaycastHit hit)) { Disable(); return; } TeleportRequest request = new TeleportRequest() { destinationPosition = hit.point, }; provider.QueueTeleportRequest(request); Disable(); }
private void Jump() { var teleportRequest = new TeleportRequest(); teleportRequest.destinationPosition = theCube.position; teleportationProvider.QueueTeleportRequest(teleportRequest); }
private void Jump() { var teleportRequest = new TeleportRequest(); teleportRequest.destinationPosition = theCube.position; //location to teleport _teleportationProvider.QueueTeleportRequest(teleportRequest); //request teleportation to teleportation provider. FIFO. }
public void Teleport() { if (anchor && provider) { TeleportRequest request = CreateRequest(); provider.QueueTeleportRequest(request); } }
// Update is called once per frame private void Update() { SetDebug(); SetRotationText(); if (!_isTeleportActive) { return; } if (_thumbstick.triggered) { var thumbstickValue = _thumbstick.ReadValue <Vector2>(); // if the thumbstick is pushed far enough in any direction we'll // save it off for use in the rotation angle calculation. if (thumbstickValue.sqrMagnitude >= 1) { _thumbstickDirection = thumbstickValue.normalized; } return; } if (!xrRayInteractor.TryGetCurrent3DRaycastHit(out var hit)) { TurnOffTeleport(); return; } var rotationAngle = CalculateTeleportRotationAngle(); var request = new TeleportRequest() { destinationPosition = hit.point, destinationRotation = Quaternion.Euler(0, rotationAngle, 0), matchOrientation = MatchOrientation.TargetUpAndForward }; _teleportationProvider.QueueTeleportRequest(request); TurnOffTeleport(); }