太郎Work

Unityとかで困ったこと等を残しておきます

UnityEditor

Unity2021.2のOverlay機能を使う

Overlay機能 Unity2021.2からSceneView上の要素はOverlayというものに置き換わり、自由に配置を動かせるようになりました。 ParticleSystemを選択したときのウィンドウも↓こんな感じになっていて左上をドラッグすることで自由に動かすことができます Particl…

ShaderGraphのPBRMasterNodeを拡張してみた

UniversalRPには標準でPBRMasterNodeがありますが、Fogの処理を変えたかったりほんの少し処理変えたかったりしたかったので自作のMasterNodeを作ってみました 速攻で仕様変わっていたらすみません... Unity2019.4+ShaderGraph7.5.0+UniversalRP7.5.08/24追記…

UnityTimelineのTrackをスクリプトから入れ替える

現在Timeline関連の実装をしているのですが、Trackの順序をスクリプトから入れ替えたくなったのでメモ 多分こんなことしたい人いないと思うので需要ゼロです入れ替えたい理由はPlayableOutputの接続順をプログラム的に変えたかったためです本来はWindow内でT…

UnityEditorのGameViewが更新されない時の対処方法

非実行時にEditorスクリプトからHierarchey内のオブジェクトに変更を加えても UnityEditor全体に対しての更新通知が行かないため、SceneView,GameViewの描画更新が行われないViewサイズを変える、Inspectorから変更をする等をすれば更新されるがすぐに確認し…

UnityEditor再生開始時のイベント取得

UnityEditor再生時のイベント 実行、非実行時でモデルプレビュー出来るツールを作成しているのですが、再生時にモデルを一旦リセットして再生成するスクリプトを作成したい ということでこんなスクリプトを書くと ここのボタンを押す度にOnPlayModeStateChan…

ScriptableObjectのメンバリネーム

ScriptableObjectを使用している時に変数定義を変えたくなることがあると思います。 例えばpublicで定義していたけどやはりprivateのSerializeFieldにしてスクリプトからは読み込み専用にしたくなった等 その時は [System.Serializable] public class Data {…

UnityEditorのObjectFieldでフォルダのみ入れる

もっと簡単な方法あれば教えて下さい>< Object folder; var newFolder = EditorGUILayout.ObjectField (folder, typeof(Object), false); var path = AssetDatabase.GetAssetPath (newFolder); if (AssetDatabase.IsValidFolder (path)) { folder = newFol…

AssetBundleメモ

Unity5.1.0での話 AssetBundle.CreateFromFileはエラーになって動かない ビルド時は出力フォルダの.manifestファイルを参照しているためファイルをリネームすると再ビルドが走る AssetBundle本体のファイルが存在しているかどうかのチェックはされていないの…

PlayerSettingsのアイコンをEditorから変える

dev版とrelease版で切り替えるEditorを作っていたのですが、アイコンも変えようと思ったら簡単に変えられたのでメモ var icons = PlayerSettings.GetIconsForTargetGroup (BuildTargetGroup.Unknown); if (icons != null && icons.Length > 0) { player.icon…

EditorWindowでのフォントサイズ設定

今までEditorWindow上の文字サイズを変更する際は GUILayout.Label("<size=32>Test</size>"); のように指定していたのだが、恐らくUnity4.3にしてからこの指定が出来なくなっていた。 これを使うとボタン等も簡単にフォントサイズが変更できて重宝していたが、削除されたのだ…

拡張EditorでTextFieldの表示を更新する

拡張Editorを使っているとよく起きる問題。 TextFieldの文字を選択中にその中身を書き換えても文字列が更新されない(内部的には更新されている) このように上のTextFieldを選択した状態で上のTextFieldを消すと本当は”TEST2”と表示されるはずが、 ”TEST”が残…