Beispiel #1
0
    void Update()
    {
        if (model != null &&
            currentInsruction != null &&
            currentInsruction.trackingState == TrackingState.Tracking)
        {
            Quaternion targetRotation = currentInsruction.transform.rotation * Quaternion.Euler(rotationOffset);
            Vector3    targetPosition = currentInsruction.transform.position + modelOffset;
            model.transform.rotation = Quaternion.RotateTowards(model.transform.rotation, targetRotation, MODEL_ROTATION_SPEED * Time.deltaTime);
            model.transform.position = Vector3.MoveTowards(model.transform.position, targetPosition, MODEL_MOVEMENT_SPEED * Time.deltaTime);
        }

        if (stepper != null &&
            TryGetTouchPosition(out Vector2 touchPosition) &&
            raycastManager.Raycast(touchPosition, raycastHits, TrackableType.Image))
        {
            // Raycast hits are sorted by distance, so the first one
            // will be the closest hit.
            var hitPose = raycastHits[0].pose;

            // Advance to the next step
            stepper.NextStep();
        }
    }