Exemplo n.º 1
0
    // 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();
    }
Exemplo n.º 3
0
    private void Jump()
    {
        var teleportRequest = new TeleportRequest();

        teleportRequest.destinationPosition = theCube.position;
        teleportationProvider.QueueTeleportRequest(teleportRequest);
    }
Exemplo n.º 4
0
    private void Jump()
    {
        var teleportRequest = new TeleportRequest();

        teleportRequest.destinationPosition = theCube.position;       //location to teleport
        _teleportationProvider.QueueTeleportRequest(teleportRequest); //request teleportation to teleportation provider. FIFO.
    }
Exemplo n.º 5
0
 public void Teleport()
 {
     if (anchor && provider)
     {
         TeleportRequest request = CreateRequest();
         provider.QueueTeleportRequest(request);
     }
 }
Exemplo n.º 6
0
    // 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();
    }