MaterialのShaderプロパティーを表示 その2(Editor拡張)
コントロールの作成 プロパティの表示に必要なデータの取得で取得したプロパティのタイプ(prop_type)を用いて、プロパティのタイプによって作成するコントロールを変更します。 Colorプロパティ colorプロパティに作用するAttributeはありません。そのため、以下に示すように色を選択するコントロールの作成のみを行っています。 Vectorプロパティ Vectorプロパティもcol […]
Unityによるゲーム制作のあれこれ
コントロールの作成 プロパティの表示に必要なデータの取得で取得したプロパティのタイプ(prop_type)を用いて、プロパティのタイプによって作成するコントロールを変更します。 Colorプロパティ colorプロパティに作用するAttributeはありません。そのため、以下に示すように色を選択するコントロールの作成のみを行っています。 Vectorプロパティ Vectorプロパティもcol […]
Inspectorに表示されるようなMaterialのShaderプロパティをEditorWindowで表示するScriptを作成しました。基本的なAttributeにも対応しています。 ※コントロールの作成部分は次の記事、「MaterialのShaderプロパティーを表示 その2(Editor拡張)」に記述しています。 Script 作成したScriptは以下の通りです。 プロパティの表示に […]
作成したGUIコントロールを一つのクラスへまとめたScriptです。詳しくはFloatFieldの作成 その2(Editor拡張)、ラジオボタンの作成(Editor拡張)、Sliderの作成(Editor拡張)、FloatFieldの作成(Editor拡張)で説明しています。 Script 作成したGUIコントロールは以下の通りです。 これらのGUIコントロールを実行するScriptは以下の通 […]
以前にFloatFieldを作成した際(FloatFieldの作成)、横幅の計算にEditorWindow.positionを用いていました。しかし、スクロールバーが表示された場合、EditorWindow.positionはウィンドウの幅をであるためFloatFieldがスクロールバーで隠れてしまいます。そこで、横幅の計算をGUILayoutUtility.GetRectへ変更し、さらにPre […]
Editor拡張でポップアップウィンドウ作成する方法です。 その1 PopupWindowContentを継承したクラスを作成し、これをPopupWindow.Showでポップアップウィンドウとして開きます。 Script 下記Scriptでは、表示されたボタンを押すとポップアップウィンドウが開きます。このポップアップウィンドウ内に前回作成したラジオボタンを表示し、選択したボタンのインデック […]
EditorWindowでラジオボタンを作成する方法です。 GUILayout.SelectionGridを用いて作成 GUILayout.SelectionGridは選択したボタンのインデックスを返します。動作としてはラジオボタンと同じですが、実行すると このように、複数のボタンが並んだ状態で表示されます。このGUILayout.SelectionGridに、EditorStyle.radi […]
GUIStyleを自由に変更できるようSliderを自作しました。 Label、Slider、FloatFieldを横並びで表示 EditorGUILayout.Sliderによって作成されるコントロール(Label、Slider、FloatField)を別々に作成し、これらを横へ並べることでSliderを作成ます。これにより、各要素へ自由にGUIStyleを設定することができるようになります […]
EditorGUILayout.FloatFieldで作成したFloatFieldのラベルの色を変更しようとGUIStyleを変更したところ、テキスト入力部分のスタイルしか変更できませんでした。そこで、FloatFieldを自作することで、自由にラベルの色等を変更できるようにしました。 LabelFieldとFloatFieldを横並びで表示 FloatFieldを作成すると、ラベル部分(La […]
Unityではシェーダを視覚的に作成できる「Shader Graph」が使用できます。このShader Graphでは様々なノードが利用でき、それらを繫げることでシェーダを作成します。このノードの中にCustom Function Nodeがあり、これを利用することでオリジナルのノードを作成することができます。 ノードへ直接記述する方法 Shader Graphを開き、Custom Funct […]
パーリンノイズのタイリング 九個のQuadを並べ、シェーダでノイズ2(パーリンノイズ)で作成したパーリンノイズを生成すると このように、境界ができてしまいます。この原因と解決法を探るため、一次元パーリンノイズを並べたグラフと作成しました。 グラフの中央が境界となっています。パーリンノイズは青色の直線と赤色の直線を補間することにより求めています。このグラフより、青色と赤色の直線は一つの直線となって […]