Лучшим решением будет возможность скомпилировать вариант на лету только тогда, когда это необходимо во время выполнения. Аналогично тому, как редактор Unity обрабатывает варианты. Небольшая задержка во время компиляции — это нормально. Есть ли способ добиться этого?
Мы пытались сделать это с помощью ShaderVariantCollection, но безуспешно. Вот код
Код: Выделить всё
var keywords = material.shaderKeywords;
ShaderVariantCollection variants = new ShaderVariantCollection();
ShaderVariant variant = new ShaderVariant
{
shader = material.shader,
passType = PassType.Normal, // Adjust this as needed
keywords = keywords
};
// Add the variant to the collection
variants.Add(variant);
variants.WarmUp();Подробнее здесь: https://stackoverflow.com/questions/790 ... at-runtime