はじめに Project ビューを右クリックした時に表示されるメニューをカスタマイズできるエディタ拡張 「Unity Project Window Menu Customizer」を GitHub に公開しました 使用例 インストール "com.baba_s.unity-project-window-menu-customizer": "https://…
検証環境 Unity 2019.3.0f6 ソースコード 上記のスクリプトを Unity プロジェクトの Editor フォルダに追加します 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { #if UNITY_ANDROID ここでコンパイルエラー #en…
はじめに シーン遷移時に簡単にデータを渡すことができるパッケージ 「Unity Scene Data Transfer」を GitHub に公開しました インストール "com.baba_s.unity-scene-data-transfer": "https://github.com/baba-s/unity-scene-data-transfer.git", manifest.…
スライド
はじめに Package Manager 用の自作パッケージには サンプル用のアセットを含めることができます サンプルは Package Manager からインポートできるようになります インポートしたサンプルはこのように Assets フォルダ内に展開されます 検証環境 Unity 2019…
概要 private (int id, string name) GetCharacter() { return ( 25, "ピカチュウ" ); } 関数の戻り値で ValueTuple を使用することで var character = GetCharacter(); Console.WriteLine( character.id + ", " + character.name ); var ( id, name ) = Get…
概要 using System.Linq; using UnityEngine; public class Example : MonoBehaviour { private static string[] m_list = { "フシギダネ", "フシギソウ", "フシギバナ", }; private void Update() { // 匿名型 var r1 = m_list.Select( c => new { name = c…
はじめに 「ProjectAuditor」を Unity プロジェクトに導入することで ゲームのパフォーマンスに影響を与えるソースコードやプロジェクトの設定を 分析できるようになります (この記事を書いた時点ではまだ実験中の機能とのことです) 使い方 Unity メニュー…
はじめに 「UnityXcodeCache」を Unity プロジェクトに導入することで Xcode プロジェクトをキャッシュしてビルド時間を削減できようになります 使い方 「Tools > Xcode > WriteCacheXcode」を実行します Xcode プロジェクトをビルドします 「Tools > Xcode …
はじめに この記事は「Unity #3 Advent Calendar 2019」の 12/9 の記事です 「Unity YAML Parser」を Python で使用することで Unity の .asset や .prefab、.unity などのファイルを編集できます 目次 はじめに 目次 検証環境 インストール方法 ProjectSett…
はじめに この記事は「Unity Advent Calendar 2019」の 12/6 の記事です 上記の「CustomToolbar」を Unity プロジェクトに導入することで エディタの再生ボタンの左右に独自の GUI を追加することができます 使用例 使い方 「CustomToolbar」を Unity プロジ…
はじめに この記事は「Unity #3 Advent Calendar 2019」の 12/5 の記事です private void OnGUI() { EditorGUILayout.BeginHorizontal(); if ( GUILayout.Button( "ピカチュウ" ) ) { } if ( GUILayout.RepeatButton( "ライチュウ" ) ) { } EditorGUILayout.…
はじめに この記事は「Unityアセット冬のアドベントカレンダー 2019 Winter」の 12/2 の記事です 「Universal Device Preview」を Unity プロジェクトに導入することで 50種類以上のデバイスでゲーム画面がどう表示されるかエディタ上で確認できて、 ノッチ…
ソースコード using UnityEngine; public static class ComponentExt { public static bool TryGetComponentInParent<T>( this Component self, out T component ) where T : Component { component = self.GetComponentInParent<T>(); return component != null; </t></t>…
ソースコード using UnityEngine; public static class ComponentExt { public static bool TryGetComponentInChildren<T>( this Component self, out T component ) where T : Component { component = self.GetComponentInChildren<T>(); return component != nu</t></t>…
ソースコード using UnityEngine; public static class ComponentExt { public static bool TryGetComponent<T>( this Component self, out T component ) where T : Component { component = self.GetComponent<T>(); return component != null; } } public stati</t></t>…
概要 var collider = GetComponent<BoxCollider>(); if ( collider != null ) { Debug.Log( collider ); } GetComponent だとこのように記述する処理を if ( TryGetComponent<BoxCollider>( out var collider ) ) { Debug.Log( collider ); } TryGetComponent を使うとちょっとだけ簡潔</boxcollider></boxcollider>…
概要 上記の GitHub リポジトリでは EditorGUIUtility.IconContent で使用できる 1000 種類以上のアイコンがすべてまとめられています 使用例 using UnityEditor; using UnityEngine; public sealed class Example : EditorWindow { [MenuItem( "Tools/Hoge"…
はじめに 上記の記事の手順を踏むことで Text の Inspector に ContentSizeFitter をアタッチするボタンを追加できます 概要 if ( GUILayout.Button( "Add ContentSizeFitter" ) ) { var text = target as Text; var gameObject = text.gameObject; if ( gam…
はじめに 上記の記事の手順を踏むことで HorizontalLayoutGroup や VerticalLayoutGroup の Inspector に ContentSizeFitter をアタッチするボタンを追加できます 概要 if ( GUILayout.Button( "Add ContentSizeFitter" ) ) { var layoutGroup = target as H…
はじめに 上記の記事の手順を踏むことで ContentSizeFitter の Inspector に HorizontalFit と VerticalFit を同時に変更するボタンを追加できます ソースコード using UnityEngine; using UnityEngine.UI; namespace UnityEditor.UI { [CustomEditor(typeof…
はじめに uGUI の Button や Text の Inspector は通常方法でエディタ拡張することはできないですが、 https://bitbucket.org/Unity-Technologies/ui uGUI のソースコードはオープンソースとして上記 URL で公開されているので プロジェクトファイルをダウン…
概要 using UnityEngine; using UnityEngine.Profiling; public class Example : MonoBehaviour { private void Update() { int num1 = 1; int num2 = 2; // ToString あり var sampler1 = CustomSampler.Create( "ToString あり" ); sampler1.Begin(); var …
概要 TMP Settings を選択して 「Enable Raycast Target」をオフにすると、 TextMesh Pro のオブジェクト作成時に Raycast Target がオフになります
一覧 Unibus Signals MessageKit BasicEventBus Unity Events 2.0 KLab Message Buses for Unity
はじめに 「FastEnum」をプロジェクトに追加することで 高速な列挙型の API を使用できるようになります インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参照」タ…
ソースコード using System; using System.Collections.Generic; public static class IEnumerableExt { public static IEnumerable<(int index, T value)> WithIndex<T> ( this IEnumerable<T> source ) { if ( source == null ) { throw new ArgumentNullExcepti</t></t>…
はじめに 「File Icon for GitHub and GitLab」を Chrome に追加することで GitHub や GitLab のアイコン表示を拡張できます 使用例 適用前 適用後 ファイル名や拡張子に合わせてアイコン表示が拡張されます
はじめに 「Octotree」を Chrome に追加することで GitHub ページの左側にリポジトリの階層構造を表示できます 使用例 画面左の「Octotree」ボタンを押すと表示できます ピンアイコンをクリックして固定することもできます
はじめに 「Hide Files on GitHub」を Chrome に追加することで GitHub で .editorconfig や .gitignore などのファイルを非表示にできます 使用例 導入前 導入後 補足 デフォルトでは下記の正規表現にマッチするファイルが非表示になります ^\. ^license ^c…