Описание
Элемент RenderPipelineAsset, определяющий переопределяющий конвейер рендеринга для текущего уровня качества.
Это конвейер переопределения рендеринга для текущего уровня качества. Если это значение равно null
, для текущего уровня качества не существует переопределяющего значения.
Unity использует это значение и конвейер рендеринга по умолчанию, определенный в GraphicsSettings.renderPipeline, чтобы определить активный конвейер рендеринга для текущего уровня качества. Дополнительную информацию см. в разделе GraphicsSettings.currentRenderPipeline.
using UnityEngine;
using UnityEngine.Rendering;
public class ActiveRenderPipelineExample : MonoBehaviour
{
// В Инспекторе назначьте конвейер рендеринга Asset для каждого из этих полей.
public RenderPipelineAsset defaultRenderPipelineAsset;
public RenderPipelineAsset overrideRenderPipelineAsset;
void Start()
{
GraphicsSettings.defaultRenderPipeline = defaultRenderPipelineAsset;
QualitySettings.renderPipeline = overrideRenderPipelineAsset;
DisplayCurrentRenderPipeline();
}
void Update()
{
// Когда пользователь нажимает левую клавишу Shift, переключает конвейер рендеринга по умолчанию
if (Input.GetKeyDown(KeyCode.LeftShift))
{
SwitchDefaultRenderPipeline();
DisplayCurrentRenderPipeline();
}
// Когда пользователь нажимает правую клавишу Shift, переключает конвейер переопределения рендеринга
else if (Input.GetKeyDown(KeyCode.RightShift))
{
SwitchOverrideRenderPipeline();
DisplayCurrentRenderPipeline();
}
}
// Переключение конвейера рендеринга по умолчанию между null,
// и конвейер рендеринга, определенный в defaultRenderPipelineAsset
void SwitchDefaultRenderPipeline()
{
if (GraphicsSettings.defaultRenderPipeline == defaultRenderPipelineAsset)
{
GraphicsSettings.defaultRenderPipeline = null;
}
else
{
GraphicsSettings.defaultRenderPipeline = defaultRenderPipelineAsset;
}
}
// Переключить переопределяющий конвейер рендеринга между null,
// и конвейер рендеринга, определенный в overrideRenderPipelineAsset
void SwitchOverrideRenderPipeline()
{
if (QualitySettings.renderPipeline == overrideRenderPipelineAsset)
{
QualitySettings.renderPipeline = null;
}
else
{
QualitySettings.renderPipeline = overrideRenderPipelineAsset;
}
}
// Вывести текущую информацию о конвейере рендеринга в консоль
void DisplayCurrentRenderPipeline()
{
// GraphicsSettings.defaultRenderPipeline determines the default render pipeline
// If it is null, the default is the Built-in Render Pipeline
if (GraphicsSettings.defaultRenderPipeline != null)
{
Debug.Log("The default render pipeline is defined by " + GraphicsSettings.defaultRenderPipeline.name);
}
else
{
Debug.Log("The default render pipeline is the Built-in Render Pipeline");
}
// QualitySettings.renderPipeline determines the override render pipeline for the current quality level
// If it is null, no override exists for the current quality level
if (QualitySettings.renderPipeline != null)
{
Debug.Log("The override render pipeline for the current quality level is defined by " + QualitySettings.renderPipeline.name);
}
else
{
Debug.Log("No override render pipeline exists for the current quality level");
}
// If an override render pipeline is defined, Unity uses that
// Otherwise, it falls back to the default value
if (QualitySettings.renderPipeline != null)
{
Debug.Log("The active render pipeline is the override render pipeline");
}
else
{
Debug.Log("The active render pipeline is the default render pipeline");
}
// To get a reference to the Render Pipeline Asset that defines the active render pipeline,
// without knowing if it is the default or an override, use GraphicsSettings.currentRenderPipeline
if (GraphicsSettings.currentRenderPipeline != null)
{
Debug.Log("The active render pipeline is defined by " + GraphicsSettings.currentRenderPipeline.name);
}
else
{
Debug.Log("The active render pipeline is the Built-in Render Pipeline");
}
}
}
Смотрите так же: How to get, set, and configure the active render pipeline, GraphicsSettings.currentRenderPipelineGraphicsSettings.defaultRenderPipeline, QualitySettings.GetRenderPipelineAssetAt], GraphicsSettings.allConfiguredRenderPipelines.