Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

ShaderGUI

class in UnityEditor

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

シェーダープロパティーのカスタム GUI を定義するためとマテリアルのプレビューを拡張するために派生する抽象クラスです。

シェーダーのプロパティーの表示方法を制御するために、このクラスを継承します。このカスタム GUI を使用するシェーダーに 'CustomEditor' プロパティーを記述することで使用します。 CustomEditor は MaterialEditor から派生するクラスにも使用することができます (検索: Custom Material Editor で検索してみてください)。注: ShaderGUI アプローチだけ Substance マテリアルで動作します。したがって、これはシェーダーのためのカスタム GUI として推奨される方法です。 以下を参照してください。 ShaderGUI.OnGUI,ShaderGUI.OnMaterialPreviewGUI,ShaderGUI.OnMaterialPreviewSettingsGUI

          Shader "example" {
    // properties and subshaders here...
	// ...

CustomEditor "CustomShaderGUI" }
no example available in JavaScript
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Linq;

public class CustomShaderGUI : ShaderGUI { override public void OnGUI (MaterialEditor materialEditor, MaterialProperty[] properties) { // render the shader properties using the default GUI base.OnGUI (materialEditor, properties);

// get the current keywords from the material Material targetMat = materialEditor.target as Material; string[] keyWords = targetMat.shaderKeywords;

// see if redify is set, then show a checkbox bool redify = keyWords.Contains ("REDIFY_ON"); EditorGUI.BeginChangeCheck ( ); redify = EditorGUILayout.Toggle ("Redify material", redify); if (EditorGUI.EndChangeCheck ( )) { // if the checkbox is changed, reset the shader keywords var keywords = new List<string> { redify ? "REDIFY_ON" : "REDIFY_OFF" }; targetMat.shaderKeywords = keywords.ToArray ( ); EditorUtility.SetDirty (targetMat); } } }

Public 関数

AssignNewShaderToMaterialこのメソッドは新しいシェーダーが Material を選択したときに呼び出されます
OnGUICustom Shader GUI を定義するには properties 配列の描画を制御するために materialEditor のメソッドを使用します
OnMaterialPreviewGUIプレビュー領域のレンダリングを拡張するためにオーバーライドするか、 ( base.OnMaterialPreviewGUI を呼び出さずに)プレビューを完全に置き換えます
OnMaterialPreviewSettingsGUIプレビュー領域のツールバーの機能を拡張するためにオーバーライドするか、 ( base.OnMaterialPreviewGUI を呼び出さずに) ツールバーを完全に置き換えます

Static 関数

FindPropertyシェーダープロパティーを検索します