Unity 6.3
0 онлайн 0 гостей 3 в системе
Вход

GraphicsSettings.TrySetCurrentRenderPipelineGlobalSettings

Declaration

public static bool TrySetCurrentRenderPipelineGlobalSettings(Rendering.RenderPipelineGlobalSettings asset);

Параметры

Параметр Описание
ассеты Ассет RenderPipelineGlobalSettings для активации для проекта.

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

логическое Возвращает true, если ассет не был нулевой и Unity успешно применил настройки.

Описание

Попытки установить активные RenderPipelineGlobalSettings во время выполнения.

Этот метод позволяет назначить ассет RenderPipelineGlobalSettings во время выполнения. Используйте этот метод, когда вам нужно активировать ассет RenderPipelineAsset, но его соответствующий RenderPipelineGlobalSettings не был активен во время сборки проекта. Это может произойти, если проект был собран без активного Scriptable Render Pipeline, или если он был собран с настройками для другого конвейера.

Например, если вы загружаете Universal Render Pipeline (URP) RenderPipelineAsset и его RenderPipelineGlobalSettings из AssetBundle во время выполнения, вы должны сначала вызвать этот метод, чтобы активировать глобальные настройки URP. Вы должны сделать это до назначения ассета URP ассету QualitySettings.renderPipeline. Попытка назначить ассет без совместимых глобальных настроек активных приведет к InvalidOperationException.

Примечание: Этот метод работает только во время выполнения. Вы не можете использовать его в Unity Editor. Вызов этого метода из Редактора приводит к сообщению журнала ошибок и метод немедленно возвращает false.

Во время сборки Unity проверяет RenderPipelineGlobalSettings и RenderPipelineAsset, назначенные в настройках качества, чтобы убедиться, что собраны правильные ресурсы. Если вы используете этот API, вы также должны убедиться, что собраны правильные ресурсы.

using UnityEngine;
using UnityEngine.Rendering;

public class RuntimePipelineActivator : MonoBehaviour { // In a real scenario, Render Pipeline Global Settings and Render Pipeline Asset would likely be loaded from an AssetBundle. // For this example, assign them in the Inspector manually. public RenderPipelineGlobalSettings newGlobalSettings; public RenderPipelineAsset newPipelineAsset;

void Start() { if (newGlobalSettings == null || newPipelineAsset == null) { Debug.LogError("The new Render Pipeline Global Settings or Render Pipeline Asset has not been assigned."); return; }

// To activate a dynamically loaded pipeline, you must first set its corresponding global settings. // This call will fail if run in the Editor. bool settingsSet = GraphicsSettings.TrySetCurrentRenderPipelineGlobalSettings(newGlobalSettings);

if (settingsSet) { Debug.Log("Successfully applied new Render Pipeline Global Settings.");

// Now that the correct global settings are active, it is safe to assign // the new render pipeline asset. QualitySettings.renderPipeline = newPipelineAsset; Debug.Log($"Activated Render Pipeline: {QualitySettings.renderPipeline.name}"); } else { Debug.LogError("Failed to set Render Pipeline Global Settings. This may be because you are running in the Editor, or the asset was null."); } } }

Дополнительные ресурсы: ,QualitySettings,.