コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

2020-08-01から1ヶ月間の記事一覧

【Unity】Scene ビューに UI レイヤーの表示の ON / OFF を切り替えるボタンを追加するエディタ拡張

ソースコード 使用例

【Unity】Unity 2020.1 新機能 - 「Prefab Mode in Context」

概要 例えばシーンにこのようなオブジェクトが存在しており、 中央のテキストオブジェクトがプレハブの場合に プレハブのインスタンスの編集画面をそのまま開くと 現在のシーンが Scene ビューに表示された状態でプレハブを編集できるようになり、 Alt キー…

【Unity】Unity 2020.1 新機能 - Scene ビューのカメラ設定ウィンドウに独自の GUI を追加できるようになった

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { SceneViewCameraWindow.additionalSettingsGui += OnGUI; } private static void OnGUI( SceneView sceneView ) { GUILayout.Label( "ピ…

【Unity】The editor layout could not be fully loaded, this can happen when the layout contains EditorWindows not available in this project

概要 The editor layout could not be fully loaded, this can happen when the layout contains EditorWindows not available in this project 自作の EditorWindow を表示した状態で Unity を再起動したところ 上記のログが Console に出力されており、 自…

【Unity】GUI.Window の領域でクリックされた時に後ろ側でクリックイベントが反応しないようにする方法

ソースコード var current = Event.current; var type = current.type; var isMouseDragOrDown = type == EventType.MouseDrag || type == EventType.MouseDown; var isLeftButton = current.button == 0; if ( isMouseDragOrDown && isLeftButton ) { curre…

【Unity】New Scene ダイアログを無効化する方法

概要 新しいシーンを作成する時に表示される New Scene ダイアログを無効化したい場合は Unity メニューの「Edit > Project Settings...」を選択して 表示された「Project Settings」ウィンドウで「Scene Template」を選択して 「New Scene Menu」を「Builtin…

【Unity】Unity 2019.4 以前でスクリプトから Preset を適用する時にパラメータの除外を指定できる関数

ソースコード using System.Linq; using UnityEditor.Presets; using UnityEngine; public static class PresetUtils { public static void ApplyToWithExclusion ( Preset preset, Object target, params string[] excludedPropertyPaths ) { var selectedP…

【Unity】Unity 2020.1 新機能 - スクリプトから Preset を適用する時にパラメータの除外を指定できるようになった

ソースコード using UnityEditor.Presets; using UnityEngine; public static class PresetUtils { public static bool ApplyToWithExclusion ( Preset preset, Object target, params string[] excludedProperties ) { var current = preset.excludedProper…

【Unity】エディタ右下に非同期タスクの進捗を表示できる「Progress」を使いやすくするクラス

ソースコード 使用例 using Kogane; using System.Collections; using Unity.EditorCoroutines.Editor; using UnityEditor; using UnityEngine; public sealed class Example : EditorWindow { [MenuItem( "Tools/Open" )] private static void Open() { Get…

【Unity】Unity 2020.1 新機能 - エディタ右下に非同期タスクの進捗を表示できる「Progress」クラスが追加された

概要 using System.Collections; using Unity.EditorCoroutines.Editor; using UnityEditor; using UnityEngine; public sealed class Example : EditorWindow { [MenuItem( "Tools/Open" )] private static void Open() { GetWindow<Example>(); } private void OnGU</example>…

【Unity】Addressable Asset System で DontDestroyOnLoad したゲームオブジェクトが参照しているアセットやスクリプトが Missing になってしまう現象の対応方法

概要 Note: If you mark a GameObject in an Addressable loaded scene as DontDestroyOnLoad or move it to another loaded Scene and then unload your original Scene, all dependencies for your GameObject are still unloaded. If you find yourself i…

【Unity】選択したゲームオブジェクトやアセットの履歴を管理できる「Unity Editor History panel」紹介

はじめに 「Unity Editor History panel」を Unity プロジェクトに導入することで 選択したゲームオブジェクトやアセットの履歴を管理できるようになります 使用例 使い方 Unity メニューの「Tools > Open Open Navigation Panel」を選択することで 履歴を管…

【Unity】URP で透明をディザリングで描画できる「Dither Transparency in Unity URP」紹介

はじめに 「Dither Transparency in Unity URP」を Unity プロジェクトに導入することで URP で透明をディザリングで描画できるようになります 使用例 使い方 Shader を「Shader Graph/DitherTransparent」に変更したマテリアルを使用します

【Unity】Layers の表示・非表示を切り替えるエディタ拡張のサンプル

ソースコード using UnityEditor; using UnityEngine; internal static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // 「UI」レイヤーの表示・非表示を切り替える Tools.visibleLayers ^= LayerMask.GetMask( "UI" ); SceneV…

【ReSharper】Code Cleanup する時に .asmdef は対象外にする方法

概要 ReSharper メニューの「Code Inspection > Generated Code」を選択して 「Generated file masks」の「Add」を押して *.asmdef と入力して「Save」を押す

【ReSharper】2020.2 新機能 - ファイル保存時に自動で Code Cleanup できるようになった

概要 ReSharper の Options の「Code Editing > Code Cleanup > General」から 「Automatically run cleanup when saving a file (not supported for shared/ linked files」 をオンにすると、ファイル保存時に自動で Code Cleanup されるようになります 参…

【Unity】Error while downloading Asset Bundle: Failed to decompress data for the AssetBundle

概要 Error while downloading Asset Bundle: Failed to decompress data for the AssetBundle Unity プロジェクトを 2019.3 から 2019.4 にアップデートしてから アセットバンドルを読み込もうとしたところ上記のエラーが出て読み込みに失敗した すべてのア…

【Unity】Error detecting Visual Studio installations: System.ArgumentException: JSON parse error: Invalid escape character in string(2020/9/20更新)

はじめに Error detecting Visual Studio installations: System.ArgumentException: JSON parse error: Invalid escape character in string. at (wrapper managed-to-native) UnityEngine.JsonUtility.FromJsonInternal(string,object,System.Type) at Uni…

【Unity】SpriteBoneInfluenceListWidget.cs(82,24): error CS1061: 'SelectListView' does not contain

概要 Library\PackageCache\com.unity.2d.animation@4.2.2\Editor\SkinningModule\SpriteBoneInfluence\SpriteBoneInfluenceListWidget.cs(82,24): error CS1061: 'SelectListView' does not contain a definition for 'onSelectionChange' and no accessibl…

【Unity】Library\PackageCache\com.unity.textmeshpro@3.0.0\Scripts\Runtime\TMP_DefaultControls.cs(191,22):

概要 Library\PackageCache\com.unity.textmeshpro@3.0.0\Scripts\Runtime\TMP_DefaultControls.cs(191,22): error CS1061: 'RectMask2D' does not contain a definition for 'padding' and no accessible extension method 'padding' accepting a first arg…

【Unity】Writeing asset file failed

概要 Writeing asset file failed Writing library/metadata/XX/XXXX Unable to write file. OS error: この操作を正しく終了しました。 Unity プロジェクト起動時に上記のエラーダイアログが表示される現象に遭遇した ハードディスクの空き容量が不足してい…

【C#】メタデータ ファイル 'XXXX.exe' が見つかりませんでした。

C#

状況 Visual Studio の .sln で複数の .csproj を管理している状態で 「デバッグの開始」をしようとしたところ 「メタデータ ファイル 'XXXX.exe' が見つかりませんでした。」 というコンパイルエラーが発生した ソリューションのクリーンやリビルドを試して…

【C#】Console.WriteLine を無効化する方法

C#

概要 using System.IO; ... Console.SetOut( TextWriter.Null ); Console.SetError( TextWriter.Null ); 参考サイト様

【VSCode】自動更新を無効化する方法

概要 "update.mode": "none" settings.json に上記の記述を追加する

【VSCode】新しいタブを一番右に表示する方法

概要 "workbench.editor.openPositioning": "last" settings.json に上記の記述を追加する

【VSCode】リリースノートを非表示にする方法

概要 "update.showReleaseNotes": false settings.json に上記の記述を追加する

【VSCode】マウスホイールでズームできるようにする方法

概要 "editor.mouseWheelZoom": true settings.json に上記の記述を追加する

【C#】大文字小文字を区別しない String.Contains

C#

ソースコード using System; public static class StringExt { public static bool Contains ( this string self, string value, StringComparison comparisonType ) { return self.IndexOf( value, comparisonType ) != -1; } } 使用例 using System; publi…

【おすすめスライド】「ららマジでしかできない!?キャラクターアセット最適化事例」

スライド

【おすすめスライド】「社内社外で勉強会を続けていくための考え方」

スライド