Perbandingan fitur pipa Render
Memilih dan mengkonfigurasi solusi pipa dan pencahayaan render

Bagaimana cara mendapatkan, mengatur, dan mengkonfigurasi pipa render aktif

Halaman ini berisi informasi tentang cara mendapatkan, mengatur, dan mengkonfigurasi render pipelineRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary
yang Unity saat ini digunakan. Pipa render yang Unity saat ini menggunakan disebut pipa render aktif.

Overview

Untuk membuat konten, Unity dapat menggunakan Pipeline Render Built-in atau pipa render berdasarkan API Reference (SRP), yang mencakup Pipa Render Universal (URP) dan Pipa Render Definisi Tinggi (HDRP).

Untuk menentukan penggunaan Render Pipeline Unity yang Scriptable, Anda menggunakan Aset Pipeline Render. Aset Pipeline Render memberitahu Unity yang digunakan SRP, dan bagaimana mengkonfigurasinya. Jika Anda tidak menentukan Aset Pipa Render, Unity menggunakan Pipa Render Built-in.

Anda dapat membuat beberapa Aset Pipa Render yang menggunakan pipa render yang sama, tetapi dengan konfigurasi yang berbeda; misalnya, Anda dapat menggunakan Aset Pipa Render yang berbeda untuk tingkat kualitas perangkat keras yang berbeda. Untuk pengenalan umum untuk Render Pipeline Assets, lihat Scriptable Render Pipa pengenalan. Untuk informasi Aset Render Pipeline onURP, lihat, dan untuk Aset Pipeline Render HDRP, lihat.

Segera setelah Anda mengubah pipa render aktif di Editor Unity atau pada runtime, Unity menggunakan pipa render aktif baru untuk membuat konten. Jika Anda berada di Editor Unity, ini termasuk tampilan Game, tampilan SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
, dan pratinjau untuk Bahan di panel Proyek dan InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
.

Ketika Anda mengubah pipa render aktif, Anda harus memastikan bahwa aset dan kode dalam proyek Anda kompatibel dengan pipa render baru; jika tidak, Anda mungkin mengalami kesalahan atau efek visual yang tidak diinginkan.

Menentukan pipa render aktif

Pengaturan di kedua Pengaturan Grafik dan Pengaturan kualitas menentukan pipa render aktif. Dalam Pengaturan Grafik, Anda mengkonfigurasi pipa render yang digunakan Unity secara default. Dalam Pengaturan Kualitas, Anda dapat menimpa pipa render default untuk tingkat kualitas yang diberikan.

Untuk mendapatkan atau mengatur pipa render default, gunakan Pengaturan Grafik > Scriptable Render Pipeline Setting (atau API setara, Grafik). Untuk mendapatkan atau mengatur pipa render yang menimpa default untuk tingkat kualitas tertentu, Pengaturan Kualitas > Render Pipeline (atau API setara, QualitySettings.renderPipeline).

Unity menentukan pipa render aktif seperti ini:

  • Jika tingkat Pengaturan Kualitas saat ini > Render Pipeline merujuk Aset Pipa Render, Unity menggunakan nilai tersebut.
  • Artikelnr:
    • Jika Pengaturan Grafik > Scriptable Render Pipeline Setting merujuk Aset Render Pipeline, Unity menggunakan nilai itu.
    • Jika tidak, Unity menggunakan Pipeline Render Built-in.

Cara mendapatkan dan mengatur pipa render aktif di UI Editor

Mendapatkan pipa render aktif

Untuk mendapatkan pipa render aktif di Editor UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary
, Anda harus memeriksa jendela Pengaturan Grafik dan Pengaturan Kualitas. Untuk informasi tentang cara menggunakan nilai-nilai ini untuk menentukan pipa render aktif, lihat Menentukan pipa render aktif.

Mengaktifkan Pipa Render Built-in

Untuk mengatur pipa render aktif ke Pipeline Render Built-in, menghapus Aset Pipeline Render dari Pengaturan Grafik dan Pengaturan Kualitas.

Untuk melakukan ini:

  1. Pilih Edit > Project Settings > Quality.
  2. Untuk setiap tingkat kualitas, jika Aset Render Pipeline ditugaskan ke bidang Render Pipeline, unassign it.
  3. Pilih Edit > Project Settings > Graphics.
  4. Jika Aset Pipeline Render ditugaskan ke bidang Scriptable Render Pipeline Setting, menetapkannya.

Mengaktifkan URP, HDRP, atau pipa render kustom berdasarkan SRP

Untuk mengatur pipa render aktif ke satu yang didasarkan pada SRP, beri tahu Unity yang Render Pipeline Asset untuk digunakan sebagai pipa render aktif default, dan opsional yang Render Pipeline Assets untuk digunakan untuk setiap tingkat kualitas.

Untuk melakukan ini:

  1. Dalam folder Proyek Anda, cari Aset Pipa Render (s) yang ingin Anda gunakan.
  2. Mengatur pipa render default, yang digunakan Unity ketika tidak ada override untuk tingkat kualitas tertentu. Jika Anda tidak mengatur ini, Unity menggunakan Pipeline Render Built-in ketika tidak ada override berlaku.
    1. Pilih Edit > Project Settings > Graphics.
    2. Seret Aset Pipeline Render ke bidang Scriptable Render Pipeline Setting.
  3. Optional: Set override Render Pipeline Assets untuk tingkat kualitas yang berbeda.
    1. Pilih Edit > Project Settings > Quality.
    2. Seret Aset Pipeline Render ke bidang Render Pipeline.

Bagaimana cara mendapatkan dan mengatur pipa render aktif dalam skrip C#

Dalam C # scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
, Anda bisa mendapatkan dan mengatur pipa render aktif dan menerima callback ketika perubahan pipa render aktif. Anda dapat melakukan ini dalam Edit Mode atau Play Mode di Editor Unity, atau pada runtime di aplikasi Anda.

Untuk melakukan ini, gunakan API berikut:

Kode contoh berikut menunjukkan cara menggunakan API ini:

using UnityEngine;
using UnityEngine.Rendering;
 
public class ActiveRenderPipelineExample : MonoBehaviour
{
    // In the Inspector, assign a Render Pipeline Asset to each of these fields
    public RenderPipelineAsset defaultRenderPipelineAsset;
    public RenderPipelineAsset overrideRenderPipelineAsset;
 
    void Start()
    {
        GraphicsSettings.defaultRenderPipeline = defaultRenderPipelineAsset;
        QualitySettings.renderPipeline = overrideRenderPipelineAsset;

        DisplayCurrentRenderPipeline();
    }

    void Update()
    {
        // When the user presses the left shift key, switch the default render pipeline
        if (Input.GetKeyDown(KeyCode.LeftShift)) {
            SwitchDefaultRenderPipeline();
            DisplayCurrentRenderPipeline();
        }
        // When the user presses the right shift key, switch the override render pipeline
        else if (Input.GetKeyDown(KeyCode.RightShift)) {
            SwitchOverrideRenderPipeline();
            DisplayCurrentRenderPipeline();
        }
    }

    // Switch the default render pipeline between null,
    // and the render pipeline defined in defaultRenderPipelineAsset
    void SwitchDefaultRenderPipeline()
    {
        if (GraphicsSettings.defaultRenderPipeline == defaultRenderPipelineAsset)
        {
            GraphicsSettings.defaultRenderPipeline = null;
        }
        else
        {
            GraphicsSettings.defaultRenderPipeline = defaultRenderPipelineAsset;
        }
    }

    // Switch the override render pipeline between null,
    // and the render pipeline defined in overrideRenderPipelineAsset
    void SwitchOverrideRenderPipeline()
    {
        if (QualitySettings.renderPipeline == overrideRenderPipelineAsset)
        {
            QualitySettings.renderPipeline = null;
        }
        else
        {
           QualitySettings.renderPipeline = overrideRenderPipelineAsset;
        }
    }

    // Print the current render pipeline information to the console
    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");
        }
    }
}
Perbandingan fitur pipa Render
Memilih dan mengkonfigurasi solusi pipa dan pencahayaan render