Version: 2022.3
  • C#


Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.



Switch to Manual
public static int vSyncCount;


The number of vertical syncs that should pass between each frame.

An integer.

vSyncCount specifies the number of screen refreshes your game allows to pass between frames. In the Unity Editor, this corresponds to the VSync Count property under Project Settings > Quality > Other.

The default value of vSyncCount is 0. In the default case, Unity doesn't wait for vertical sync.

Otherwise, the value of vSyncCount must be 1, 2, 3, or 4.

Depending on your target platform, use either vSyncCount or Application.targetFrameRate to set your application frame rate.

When you use vSyncCount, Unity calculates the target frame rate by dividing the platform's default target frame rate by the value of vSyncCount. For example, if the platform's default render rate is 60 fps and vSyncCount is 2, Unity tries to render the game at 30 frames per second.

Mobile platforms ignore vSyncCount. On mobile devices, when a frame is ready, it displays the next time the screen refreshes. You can use Application.targetFrameRate to control the frame rate on mobile platforms.

VR platforms ignore vSyncCount. Instead, the VR SDK controls the frame rate.

On all other platforms, Unity ignores the value of targetFrameRate if you set vSyncCount.

Additional resources: Application.targetFrameRate

using UnityEngine;

public class Example : MonoBehaviour { void Start() { // Sync the frame rate to the screen's refresh rate QualitySettings.vSyncCount = 1; } }

Additional resources: Quality Settings.