Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

IPreprocessShaders.OnProcessShader

Объявление

public void OnProcessShader(Shader shader, Rendering.ShaderSnippetData snippet, IList data);

Параметры

shader Шейдер, который компилируется.
snippet Подробная информация о компилируемом коде конкретного шейдера.
data Список вариантов, которые необходимо скомпилировать для конкретного кода шейдера.

Описание

Реализуйте этот интерфейс для получения обратного вызова перед компиляцией фрагмента шейдера.

Проверьте глобальные ключевые слова, создав экземпляр ShaderKeyword с именем ключевого слова. Чтобы проверить локальные ключевые слова, используйте дополнительный параметр, чтобы указать шейдер, который использует локальное ключевое слово.

using System.Collections.Generic; using UnityEditor.Build; using UnityEditor.Rendering; using UnityEngine; using UnityEngine.Rendering; class MyCustomBuildProcessor : IPreprocessShaders { ShaderKeyword m_GlobalKeywordBlue; public MyCustomBuildProcessor() { m_GlobalKeywordBlue = new ShaderKeyword("_BLUE"); } public int callbackOrder { get { return 0; } } public void OnProcessShader(Shader shader, ShaderSnippetData snippet, IList<ShaderCompilerData> data) { ShaderKeyword localKeywordRed = new ShaderKeyword(shader, "_RED"); for (int i = data.Count - 1; i >= 0; --i) { if (!data[i].shaderKeywordSet.IsEnabled(m_GlobalKeywordBlue)) continue; if (!data[i].shaderKeywordSet.IsEnabled(localKeywordRed)) continue; data.RemoveAt(i); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3