public void Play() { if (!playBack && knots.m_size > 1) { currentTransfrom = new Knot(); CameraDirector.mainWindow.isVisible = false; CameraDirector.SetFreeCamera(CameraDirector.freeCamera); if (CameraDirector.freeCamera) { Cursor.visible = false; } time = 0f; playBack = true; CameraDirector.camera.GetComponent <CameraController>().enabled = false; if (CameraDirector.startSimulation) { simPaused = SimulationManager.instance.SimulationPaused; SimulationManager.instance.SimulationPaused = false; } if (CameraDirector.useFps) { while (!Monitor.TryEnter(m_simulationFrameLock, SimulationManager.SYNCHRONIZE_TIMEOUT)) { } try { SimulationManager.instance.m_simulationThread.Suspend(); } finally { Monitor.Exit(m_simulationFrameLock); } waitTimeTarget = 1000 / CameraDirector.fps; stepcount = 0; } } }
public void Stop() { CameraDirector.mainWindow.isVisible = true; CameraDirector.SetFreeCamera(false); if (CameraDirector.freeCamera) { Cursor.visible = true; } playBack = false; CameraDirector.cameraController.enabled = true; CameraDirector.camera.fieldOfView = CameraDirector.mainWindow.fovSlider.value / 2f; if (CameraDirector.startSimulation) { SimulationManager.instance.SimulationPaused = simPaused; } if (CameraDirector.useFps) { SimulationManager.instance.m_simulationThread.Resume(); } }