うにてぃブログ

主にUnityとC#に関する記事を書いていきます

Editor

【Unity】GUIStyle 一覧を表示する EditorWindow

GUI.skin. からアクセスできる GUIStyle は把握してますが、名前がわからずに内部で利用されている GUIStyle が数多くあるので、それを一覧で表示する Editor を作成しました 最後に一覧で GUIStyle の名前も載っけておきます スクリプト using System.Colle…

【Unity】OnGUI の描画処理を終了させる

Listの要素を増減させる Editor 拡張を作成した際に 下記のようにスクリプトを書くと、消したタイミングでエラーが発生する public class EditorSampleWindow : EditorWindow { private List<int> _intList = new List<int>() { 1, 2, 3, 4, 5 }; private void OnGUI()</int></int>…

【Unity】シリアライズされていないオブジェクトを Inspector や EditorWindow で表示する

シリアライズされていないオブジェクトの中身は Debug モードの Inspector でも表示できないため 表示させるためにはそれ専用のなにかが必要になる しかしながら、必要なオブジェクトごとにそれを作るのが面倒になるので、リフレクションを用いて オブジェク…

【Unity】Hierarchy 上で選択したオブジェクトのもつ RaycastTarget をすべて false にする

uGUI では UI最適化 にあるように、Raycast が不要な オブジェクトに対して Raycast Target をつけることは最適とされていません しかし Unity はオブジェクトを生成時にデフォルトで true にしてしまうためわざわざチェックを外すのが面倒になる そのため、…

【Unity】パスからアセットを検索する

Assets/ が含まれているパスがクリップボードにある状態で これを実行するとパスで指定しているオブジェクトを選択状態にしてくれます using UnityEditor; using UnityEngine; public class SelectFromClipboard { [MenuItem("Tools/SelectAssetFromClipboar…

【Unity】テクスチャのサイズを変更するツール

使い方 テクスチャをセットすると現在のサイズがセットされるので 変更したいサイズに変えて「Resize」を押すだけ Bilinear で変換しているだけなので、正しい変換かと言われると微妙な処理だが、パット見は問題なさそう コード using UnityEditor; using Un…

【Unity】テクスチャのある色を透過するツール

テクスチャの透過変換を他のサイト等で行うのが面倒だったので もしや Unity でできるのではと思い作成してみました 変換サンプル 例えばいらすとやさんの画像を肌色っぽいところを閾値0.1で透過に変換すると このように変換できます コード using UnityEdit…

【Unity】Editor で利用できる簡易 StartCoroutine を作ってみる

※ローカルメソッドを利用しているため .Net 4.x にしてないと動作しません IEnumerator の MoveNext が false になるまでループすれば StartCoroutine の代わりができるので EditorApplication.update を 利用して Editor 用の StartCoroutine を作成 public…

【Unity】GUILayoutUtility.GetRect が正しく取得できないことがある

下記コードで RenderTexture を表示させた場合は 下図のように横幅が広がってしまう // public static Rect GetRect(float minWidth, float maxWidth, float minHeight, float maxHeight); var rect = GUILayoutUtility.GetRect( 0, _renderTexture.width, 0…

【Unity】単純なメッシュを作成するツール

github.com 単純な形のメッシュがほしい際に、UnityEditor上で作成できるツールを作りました Vetex, UV, Color の調整が可能で、同一頂点を使用するようにしたり、頂点の描画順も変更できます 使い方 を押すことで、3つの頂点情報がまとまって作成されます …

【Unity】ReorderableList の GUI を作り変える

ReorderableList のデフォルト GUI は右下に + と - があり 削除する際は要素を選択してから - を押す必要があり面倒だったので、GUI を変更してみました using UnityEditor; using UnityEditorInternal; using UnityEngine; public class SampleMonoBehavio…

【Unity】Scene 上に Image の UV と 頂点カラー を表示する

通常の画像 9Sliceのある画像 using System.Collections.Generic; using System.Linq; using System.Reflection; using UnityEditor; using UnityEngine; using UnityEngine.UI; namespace Yorozu.EditorTool { public class EditorImageDrawer { private st…

【Unity】Unity で使えるフォルダ・ファイル選択パネル

EditorUtility.OpenFolderPanel EditorUtility.OpenFilePanel EditorUtility.OpenFilePanelWithFilters EditorUtility.SaveFolderPanel EditorUtility.SaveFilePanel EditorUtility.SaveFilePanelInProject 参考リンク folder には フルパスでもいいし、Asse…

【Unity】UnityEditor でプログレスバーを表示する

Unity でプログレスバーを操作するものは以下のものがある EditorUtility.DisplayProgressBar EditorUtility.DisplayCancelableProgressBar EditorUtility.ClearProgressBar 表示に使うのは DisplayProgressBar と DisplayCancelableProgressBar EditorUtili…