Halaman ini berisi informasi tentang menggunakan blok CustomEditor
atau CustomEditorForRenderPipeline
pada kode ShaderLabBahasa Unity untuk mendefinisikan struktur benda-benda Shader. More info
Lihat di Glossary Anda untuk menetapkan editor kustom.
Gunakan editor kustom untuk menampilkan jenis data yang Unity tidak dapat ditampilkan menggunakan bahan default 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, atau untuk menentukan kontrol kustom atau validasi data.
Feature name | Built-in Render PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info See in Glossary |
Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Custom SRP |
---|---|---|---|---|
ShaderLab: CustomEditor block | Yes | Yes | Yes | Yes |
ShaderLab: CustomEditorForRenderPipeline block | No | Yes | Yes | Yes |
Di ShaderLab, Anda dapat menetapkan editor kustom untuk semua pipa render. Untuk melakukan ini, Anda dapat menempatkan blok CustomEditor
di dalam blok Shader
. Anda juga dapat menetapkan editor kustom yang berbeda untuk membuat pipa berdasarkan pipa Render Scriptable dengan menempatkan blok CustomEditorForRenderPipeline
di dalam blok Shader
. Jika kode Anda mengandung blok CustomEditor
dan CustomEditorForRenderPipeline
, render pipeline spesifik satu overrides CustomEditor
satu.
Signature | Function |
---|---|
CustomEditor “[nama kelas editor kustom]” | Unity menggunakan editor kustom yang didefinisikan dalam kelas bernama, kecuali ini ditimidasi oleh blok CustomEditorForRenderPipeline . |
CustomEditorForRenderPipeline “[nama kelas editor kustom]” “[nama kelas aset pipa render]” | Ketika Render Pipeline Asset aktif adalah tipe bernama, Unity menggunakan editor kustom yang didefinisikan dalam kelas bernama. |
Untuk mendefinisikan editor kustom untuk aset shaderProgram yang berjalan di GPU. More info
Lihat di Glossary yang mewakili Shader objectContoh kelas Shader, objek Shader adalah wadah untuk program naungan dan instruksi GPU, dan informasi yang memberi tahu Unity bagaimana menggunakannya. Gunakan mereka dengan bahan untuk menentukan penampilan adegan Anda. More info
Lihat di Glossary yang diberikan, Anda membuat skrip yang mengherankan dari kelas ShaderGUI. Tempatkan skrip Anda dalam folder bernama Editor, di folder Assets Anda.
Script harus mengikuti format ini:
using UnityEditor;
public class ExampleShaderGUI : ShaderGUI
{
public override void OnGUI (MaterialEditor materialEditor, MaterialProperty[] properties)
{
// Custom code that controls the appearance of the Inspector goes here
base.OnGUI (materialEditor, properties);
}
}
Kode contoh ini menunjukkan sintaks untuk menentukan editor kustom default untuk aset naungan menggunakan blok CustomEditor
, dan kemudian menentukan dua editor kustom tambahan untuk Aset Pipa Render tertentu menggunakan blok CustomEditorForRenderPipeline
.
Shader "Examples/UsesCustomEditor"
{
// The Unity Editor uses the class ExampleCustomEditor to configure the Inspector for this shader asset
CustomEditor "ExampleShaderGUI"
CustomEditorForRenderPipeline "ExampleRenderPipelineShaderGUI" "ExampleRenderPipelineAsset"
CustomEditorForRenderPipeline "OtherExampleRenderPipelineShaderGUI" "OtherExampleRenderPipelineAsset"
SubShader
{
// Code that defines the SubShader goes here.
Pass
{
// Code that defines the Pass goes here.
}
}
}