/// Called by code that captures save icons without user intervention. public void ProgrammaticCaptureSaveIcon(Vector3 pos, Quaternion rot) { bool wasActive = CameraRig.gameObject.activeSelf; CameraRig.gameObject.SetActive(true); var state = new SaveIconTool.CameraRigState(); state.SetLossyTransform(pos, rot); var prev = CurrentCameraRigState; CurrentCameraRigState = state; // TODO XXX: Why is this Render() necessary? m_SaveIconScreenshotManager.LeftEye.Render(); //snapshot the current scene and push it to the preview window RenderWrapper wrapper = m_SaveIconScreenshotManager.gameObject.GetComponent <RenderWrapper>(); float ssaaRestore = wrapper.SuperSampling; wrapper.SuperSampling = m_superSampling; m_SaveIconScreenshotManager.RenderToTexture( SaveLoadScript.m_Instance.GetSaveIconRenderTexture()); // save off camera transform from the position we took the snapshot wrapper.SuperSampling = ssaaRestore; m_LastSaveCameraRigState = CurrentCameraRigState; CurrentCameraRigState = prev; CameraRig.gameObject.SetActive(wasActive); }
override public void UpdateTool() { base.UpdateTool(); bool bCanTakePicture = m_CurrentState == State.WaitingForPicture; if (bCanTakePicture && !m_EatInput && !m_ToolHidden && InputManager.m_Instance.GetCommandDown(InputManager.SketchCommands.Activate)) { //snapshot the current scene and push it to the preview window RenderWrapper wrapper = m_SaveIconScreenshotManager.gameObject.GetComponent <RenderWrapper>(); float ssaaRestore = wrapper.SuperSampling; wrapper.SuperSampling = m_superSampling; m_SaveIconScreenshotManager.RenderToTexture( SaveLoadScript.m_Instance.GetSaveIconRenderTexture()); wrapper.SuperSampling = ssaaRestore; // save off camera transform from the position we took the snapshot m_LastSaveCameraRigState = CurrentCameraRigState; AudioManager.m_Instance.PlaySaveSound(InputManager.Brush.m_Position); SketchControlsScript.m_Instance.IssueGlobalCommand(SketchControlsScript.GlobalCommands.SaveNew); m_CurrentState = State.Off; m_RequestExit = true; } else if (InputManager.m_Instance.GetCommandDown(InputManager.SketchCommands.MenuContextClick)) { m_RequestExit = true; } //repeated buzz on wand controller to notify user the dialog has popped up if (m_HapticCounterWand < m_HapticCountTotal) { m_HapticTimerWand -= Time.deltaTime; if (m_HapticTimerWand <= 0.0f) { ++m_HapticCounterWand; m_HapticTimerWand = m_HapticInterval; InputManager.m_Instance.TriggerHaptics(InputManager.ControllerName.Wand, m_HapticBuzzLength); } } if (m_HapticCounterBrush < m_HapticCountTotal) { m_HapticTimerBrush -= Time.deltaTime; if (m_HapticTimerBrush <= 0.0f) { ++m_HapticCounterBrush; m_HapticTimerBrush = m_HapticInterval; InputManager.m_Instance.TriggerHaptics(InputManager.ControllerName.Brush, m_HapticBuzzLength); } } }