Precaching Assets

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Русский (ru)Translate (Translate)

Для обеспечения гладкой загрузки файлов для игровой сессии, важно чтобы движок выполнял как можно больше работы для загрузки этих данных до начала сесии. Игрок не должен замечать задержек для кэширования файлов во время сесии, часто проявляющемся в "залипании" игрока или задержках в рендеринге. Для избежания этих эффектов, энтити должны до начала сесии объявлять и кэшировать файлы используемые ними. Существуют вспомогательные функции выполняющие эту работу.

Функции

Функция Precache() доступна всем потомкам класса CBaseEntity и должна вызываться в методе Spawn() каждой энтити. Все файлы используемые энтитей (модели, звуки, VCD, декали) должны быть объявлены в этой функции. Файлы не могут подгружаться вне этой функции.

Файлы кэшируются используя следующие функции:

PrecacheModel

Используется для кэширования моделей или материалов.

int CBaseEntity::PrecacheModel(
     const char *name
)

Параметры

  • name
    • Имя файла модели для загрузки

Возвращаемое значение

  • Индекс ссылающийся на модель.

PrecacheScriptSound

Используется для кэширования звуковых скриптов объявленых в скрипте звуковых файлов.

void CBaseEntity::PrecacheScriptSound(
     const char *soundname
)

Параметры

  • soundname
    • Имя звукового скрипта для загрузки.

Примечание

  • Звуковые скрипты объявляются в файле sound script manifest.

Возвращаемое значение

  • Нет.


PrecacheInstancedScene

Используется для кэширования VCD файлов.

void PrecacheInstancedScene(
     char const *pszScene
)

Возвращаемое значение

  • pszScene
    • Имя VCD файла для загрузки.

Возвращаемое значение

  • Нет.


UTIL_PrecacheOther

Вспомогательная функция вызывающая функцию Precache() для энтити которая создается или ссылается во время существования вызывающей энтити. Эта функция часто используется для оружия которое динамически создает дочернюю энтить (например граната) во время сессии.

void UTIL_PrecacheOther(
     const char *szClassname,
     const char *modelName
)

Параметры

  • szClassname
    • Имя класса энтити для которой кэшируются файлы.
  • modelName
    • Имя модели для использования этой ентити.

Возвращаемое значение

  • Нет.

UTIL_PrecacheDecal

Используется для кэширования декалей..

int UTIL_PrecacheDecal(
     const char *name,
     bool preload
)

Параметры

  • name
    • Имя декали для кеширования.
  • preload
    • Загружать или нет декаль.

Возвращаемое значение

  • Индекс ссылающийся на модель декали.

Дополнительно

  • IEngineSound::PrecacheSound
  • IVEngineServer::PrecacheSentenceFile
  • IVEngineServer::PrecacheDecal
  • IVEngineServer::PrecacheGeneric

Определения

  • PRECACHE_WEAPON_REGISTER
  • CLIENTEFFECT_REGISTER_BEGIN