protected override JobHandle OnUpdate(JobHandle inputDeps) { if (!VRDF_Components.SetupVRIsReady) { return(inputDeps); } NativeArray <float3> rotationAxisOutput = new NativeArray <float3>(1, Allocator.TempJob); NativeArray <float> currentSpeedOutput = new NativeArray <float>(1, Allocator.TempJob); var job = new RotationJob { DeltaTime = Time.DeltaTime, RotationAxis = rotationAxisOutput, CurrentSpeed = currentSpeedOutput }.Schedule(this, inputDeps); job.Complete(); VRDF_Components.RotateVRCameraAround(rotationAxisOutput[0], currentSpeedOutput[0]); rotationAxisOutput.Dispose(); currentSpeedOutput.Dispose(); return(inputDeps); }
protected override void OnUpdate() { if (!VRDF_Components.SetupVRIsReady) { return; } Entities.ForEach((ref NonLinearUserRotation nlur, ref ControllersInteractionType cit, ref BaseInputCapture bic, ref TouchpadInputCapture tic, ref InteractionThumbPosition itp) => { if (!nlur.HasAlreadyRotated && InteractionChecker.IsInteractingTouchpad(bic, cit, itp, tic)) { VRDF_Components.RotateVRCameraAround(new float3(0.0f, tic.ThumbPosition.x, 0.0f), nlur.DegreesToRotate); nlur.HasAlreadyRotated = true; } else if (nlur.HasAlreadyRotated && InteractionChecker.IsNotInteractingTouchpad(bic, cit, itp, tic)) { nlur.HasAlreadyRotated = false; } }); }