ShaderVariantCollection
Описание
ShaderVariantCollection регистрирует, какие варианты шейдеров используются в каждом шейдере.
Это используется для предварительной загрузки шейдеров ("warmup"), так что игра может убедиться, что "фактически необходимые" варианты шейдеров загружаются при запуске (или во время загрузки уровня), чтобы избежать проблем, связанных с компиляцией шейдеров позже в игре.
В Unity многие шейдеры внутренне имеют множество "вариантов", чтобы учесть различные режимы освещения, lightmaps, тени и так далее. Эти варианты идентифицируются типом прохода шейдера и набором ключевых слов шейдера. См. ShaderVariant.
Типичное использование ShaderVariantCollection заключается в записи вариантов шейдеров, используемых во время игровой сессии из редактора (в графических настройках), сохранении их как ассета и добавлении в список предварительно загруженных шейдеров (снова в графических настройках). Кроме того, вы можете вызвать WarmUp на объекте ShaderVariantCollection вручную.
ShaderVariantCollection обычно заменяет старую функцию Shader.WarmupAllShaders.
Свойства
| Свойство | Описание |
|---|---|
| isWarmedUp | Этот ShaderVariantCollection уже нагрелся? (только для чтения) |
| shaderCount | Количество шейдеров в этой коллекции (только для чтения). |
| variantCount | Общее число вариантов в этой коллекции (только для чтения). |
| warmedUpVariantCount | Общее число вариантов в этой коллекции, которые уже нагреты (только для чтения). |
Конструкторы
| Конструктор | Описание |
|---|---|
| ShaderVariantCollection | Создать новую пустую коллекцию вариантов шейдера. |
Открытые методы
| Метод | Описание |
|---|---|
| Add | Добавление нового варианта шейдера в коллекцию. |
| Clear | Удалить все варианты шейдеров из коллекции. |
| Contains | Проверяет, есть ли в коллекции вариант шейдера. |
| Remove | Удаляет вариант шейдера из коллекции. |
| WarmUp | Предварительная разогревает все варианты шейдера в этой коллекции вариантов шейдера. |
| WarmUpProgressively | Предварительно нагревает указанное количество вариантов шейдеров в этой коллекции вариантов шейдеров. |
Унаследованные члены 4
Свойства
| Свойство | Описание |
|---|---|
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
Открытые методы
| Метод | Описание |
|---|---|
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
Статические методы
| Метод | Описание |
|---|---|
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |