Как сделать вертикальную синхронизацию в юнити
Перейти к содержимому

Как сделать вертикальную синхронизацию в юнити

  • автор:

QualitySettings.vSyncCount

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 try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Your name Your email Suggestion * Submit suggestion
public static int vSyncCount ;

Description

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

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 .

using UnityEngine;

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

Форум русскоязычного сообщества Ubuntu

Страница сгенерирована за 0.043 секунд. Запросов: 25.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Небольшие фризы в игре

При запуске игры наблюдаются небольшие фризы, на сцене довольно много объектов Статистика: введите сюда описание изображения Profiler: введите сюда описание изображения И половина из этих объектов создаются и удаляются на сцене!

Отслеживать
задан 19 мар 2019 в 12:48
1,045 9 9 серебряных знаков 20 20 бронзовых знаков
@Stranger in the Q Что значит пул?
19 мар 2019 в 12:56

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Судя по скриншоту из профилировщика у вас все время уходит на V-Sync

Управлять этим можно вот тут, попробуйте отключить вертикальную синхронизацию:

Edit->Project Settings->Quality->VSync Count. 

Вертикальная синхронизация (V-Sync) — синхронизация кадровой частоты в компьютерной игре с частотой вертикальной развёртки монитора. При этом максимальный FPS с вертикальной синхронизацией приравнивается к частоте обновления монитора.

Так же попробуйте использовать пул объектов

Реализация для Unity есть в AssetStore — LeanPool

А вообще-то подход довольно прост, можете и сами реализовать нечто подобное, смысл — не порождать новые объекты, а брать их из пула, и не уничтожать их, а складывать обратно в пул, а порождать только тогда, когда они в пуле закончились (тут может быть любая другая логика, обрабатывающая переполнение).

Как сделать вертикальную синхронизацию в юнити

Zaicheg 23 мар 2011, 00:01

Edit -> Project Settings -> Quality -> Sync To VBL

Zaicheg Адепт Сообщения: 3024 Зарегистрирован: 19 июн 2009, 15:12 Откуда: Череповец

Re: V-Sync

JugadorGL 23 мар 2011, 22:00

А программно? Перебрал всё что есть в классе Screen , нашёл только как считать значение.
JugadorGL UNец Сообщения: 35 Зарегистрирован: 27 июн 2010, 00:00

Re: V-Sync

DbIMok 23 мар 2011, 22:27

настроить и переключать QualitySettings

DbIMok Адепт Сообщения: 6372 Зарегистрирован: 31 июл 2009, 14:05

Re: V-Sync

JugadorGL 23 мар 2011, 22:53

DbIMok писал(а): настроить и переключать QualitySettings

Не, такой вариант не катит. Игрушка без синхронизации на некоторых системах неадекватно почему-то себя ведёт, поэтому синхронизация стоит во всех настройках. В тоже время хочу выставить настройки графики по умолчанию соответствующие железу, поэтому хочу при первом запуске отключить синхронизацию и по текущему фреймрейту определить максимально возможное качество при приемлемом уровне ФПС.
Канешн можно считывать название видеокарты, но боюсь даже представить какой длины это будет список всех возможны на сегодняшний день видиков

JugadorGL UNец Сообщения: 35 Зарегистрирован: 27 июн 2010, 00:00

Re: V-Sync

DbIMok 23 мар 2011, 23:17

ну, запустили на 1 уровне настроек с выключенным VBL, замерили свой FPS, переключились на нужный из 5 оставшихся с включенными VBL. есть еще Application.targetFrameRate но это конечно не то. вместо названия карты можно ориентироваться на SystemInfo.graphicsPixelFillrate

DbIMok Адепт Сообщения: 6372 Зарегистрирован: 31 июл 2009, 14:05

Re: V-Sync

JugadorGL 24 мар 2011, 00:15

DbIMok писал(а): вместо названия карты можно ориентироваться на SystemInfo.graphicsPixelFillrate

о, спасибо за наводку, я как-то не подумал об этом. почему-то подумал что это пропускная способность памяти. думаю для моих целей самое оно

JugadorGL UNец Сообщения: 35 Зарегистрирован: 27 июн 2010, 00:00

Re: V-Sync

dtntr 07 апр 2011, 00:41

В билде для webplayer`a V-Sync отключен, а если я играю в окне, частота обновления кадров всегда около 60. Очень похоже на частоту обновления монитора. Это можно как нибудь исправить?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *