/// <summary> /// Update the cursor based on how long the back button is pressed /// </summary> void UpdateCursor(float timerRotateRatio) { if (InstantiatedCursorTimer != null) { InstantiatedCursorTimer.renderer.enabled = true; // Clamp the rotation ratio to avoid rendering artifacts float alphaAmount = Mathf.Clamp(1.0f - timerRotateRatio, 0.0f, 1.0f); CursorTimerMaterial.SetFloat("_Cutoff", alphaAmount); // Draw timer at fixed distance in front of camera Vector3 cameraPosition = Vector3.zero; Vector3 cameraForward = Vector3.forward; if (cameraController.GetCameraForward(ref cameraForward) && cameraController.GetCameraPosition(ref cameraPosition)) { // cursor positions itself based on camera forward and draws at a fixed depth InstantiatedCursorTimer.transform.position = cameraPosition + (cameraForward * fixedDepth); InstantiatedCursorTimer.transform.forward = cameraForward; } } }