1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using System;
- using UnityEngine;
- namespace Leap.Unity
- {
- public class FrameRateControls : MonoBehaviour
- {
- private void Awake()
- {
- if (QualitySettings.vSyncCount != 0)
- {
- Debug.LogWarning("vSync will override target frame rate. vSyncCount = " + QualitySettings.vSyncCount);
- }
- Application.targetFrameRate = this.targetRenderRate;
- Time.fixedDeltaTime = 1f / (float)this.fixedPhysicsRate;
- }
- private void Update()
- {
- if (Input.GetKey(this.unlockRender))
- {
- if (Input.GetKeyDown(this.decrease) && this.targetRenderRate > this.targetRenderRateStep)
- {
- this.targetRenderRate -= this.targetRenderRateStep;
- Application.targetFrameRate = this.targetRenderRate;
- }
- if (Input.GetKeyDown(this.increase))
- {
- this.targetRenderRate += this.targetRenderRateStep;
- Application.targetFrameRate = this.targetRenderRate;
- }
- if (Input.GetKeyDown(this.resetRate))
- {
- this.ResetRender();
- }
- }
- if (Input.GetKey(this.unlockPhysics))
- {
- if (Input.GetKeyDown(this.decrease) && this.fixedPhysicsRate > this.fixedPhysicsRateStep)
- {
- this.fixedPhysicsRate -= this.fixedPhysicsRateStep;
- Time.fixedDeltaTime = 1f / (float)this.fixedPhysicsRate;
- }
- if (Input.GetKeyDown(this.increase))
- {
- this.fixedPhysicsRate += this.fixedPhysicsRateStep;
- Time.fixedDeltaTime = 1f / (float)this.fixedPhysicsRate;
- }
- if (Input.GetKeyDown(this.resetRate))
- {
- this.ResetPhysics();
- }
- }
- }
- public void ResetRender()
- {
- this.targetRenderRate = 60;
- Application.targetFrameRate = -1;
- }
- public void ResetPhysics()
- {
- this.fixedPhysicsRate = 50;
- Time.fixedDeltaTime = 0.02f;
- }
- public void ResetAll()
- {
- this.ResetRender();
- this.ResetPhysics();
- }
- public int targetRenderRate = 60;
- public int targetRenderRateStep = 1;
- public int fixedPhysicsRate = 50;
- public int fixedPhysicsRateStep = 1;
- public KeyCode unlockRender = KeyCode.RightShift;
- public KeyCode unlockPhysics = KeyCode.LeftShift;
- public KeyCode decrease = KeyCode.DownArrow;
- public KeyCode increase = KeyCode.UpArrow;
- public KeyCode resetRate = KeyCode.Backspace;
- }
- }
|