コガネブログ

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

2021-01-01から1年間の記事一覧

【Unity】Instantiating material due to calling renderer.material during edit mode. This will leak materials into the scene. You most likely want to use renderer.sharedMaterial instead.

概要 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var gameObject = Selection.activeGameObject; var lineRenderer = gameObject.GetComponent<LineRenderer>(); lineRenderer.materi</linerenderer>…

【Unity】SpringJoint2D を LineRenderer で表示するサンプル

ソースコード using UnityEngine; [DisallowMultipleComponent] [ExecuteAlways] [RequireComponent( typeof( SpringJoint2D ) )] [RequireComponent( typeof( LineRenderer ) )] public sealed class Example : MonoBehaviour { private SpringJoint2D m_sp…

【Unity】エディタ拡張で Sprites-Default マテリアルを使用したい場合

概要 var mat = AssetDatabase.GetBuiltinExtraResource<Material>( "Sprites-Default.mat" ); 上記のコードを書くとエディタ拡張で Sprites-Default マテリアルを使用できます</material>

【Rider】Insert キーを押した時に上書きモードにならないようにする方法

概要 Rider の設定の「キーマップ」の「挿入/上書きの切り替え」を右クリックして 「Insert の除去」を押してから「Save」を押すと Insert キーを押した時に上書きモードにならなくなります

【Unity】.csproj の NoWarn に 0169 と 0649 を追加して警告を抑制するエディタ拡張

概要 Unity で「Suppress Common Warnings」をオンにすれば Unity 上では 0169 と 0649 の警告は出なくなるが Rider 上でビルドした場合は警告が出るので以下のエディタ拡張を作って警告を抑制 using System.IO; using System.Text; using System.Xml.Linq; …

【Unity】Scene ビューに 3D オブジェクトの法線・接線・従法線を表示できる「NormalView」紹介

はじめに 「NormalView」を Unity プロジェクトに導入することで Scene ビューに 3D オブジェクトの法線・接線・従法線を表示できるようになります 使用例 クイックスタート 3D オブジェクトに Normal View をアタッチすることで表示できます

【Unity】デバイスが対応している Texture フォーマットを確認できる「UnityTextureFormatCheckerKun」紹介

はじめに 「UnityTextureFormatCheckerKun」を Unity プロジェクトに導入することで デバイスが対応している Texture フォーマットを確認できるようになります

【Unity】プレハブモードになった時に Scene ビューの 2D カメラの位置やサイズを変更するエディタ拡張

概要 using Cysharp.Threading.Tasks; using UnityEditor; using UnityEditor.Experimental.SceneManagement; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { PrefabStage.prefabStageOpened += async stage => {…

【Unity】Scene ビューの 2D カメラの位置やサイズを変更するエディタ拡張

概要 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/FixCameraPivotAndSize" )] public static void FixCameraPivotAndSize() { var sceneView = SceneView.lastActiveSceneView; if ( sceneView == null ) retur…

【Rider】空白を表示する方法

概要 Rider の設定の「エディター > 一般 > 外観」の「空白を表示」をオンにすると 空白を表示できます

【Rider】namespace と入力した時に MyNamespace 以外の名前が自動で入力されるようにする方法

概要 namespace と入力した時に MyNamespace 以外の名前が入力されるようにしたい場合、 Rider の設定の「エディター > Live Templates > C#」を押して 「namespace」の「Edit variables」を押して 好きな名前を入力して「Done」を押して「Save」を押します …

【Unity】Odin で Inspector の Script の欄を非表示にする方法

概要 コンポーネントの Inspector に表示される「Script」の欄を非表示にしたい場合は using Sirenix.OdinInspector; using UnityEngine; [HideMonoScript] public class Example : MonoBehaviour { public string m_name; } HideMonoScript をクラスに付け…

【Unity】Unity を再生する時にプレハブモードを終了するエディタ拡張

ソースコード using UnityEditor; using UnityEditor.SceneManagement; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.playModeStateChanged += change => { if ( change != PlayModeStateChange.ExitingEditMode…

【Unity】プレハブモードを終了するエディタ拡張

ソースコード using UnityEditor; using UnityEditor.SceneManagement; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { StageUtility.GoToMainStage(); } }

【Rider】宣言に移動した時にデコンパイルしないようにする方法

概要 Rider で宣言に移動するとデフォルトでは 関数の中身などがデコンパイルされた状態で表示されますが Rider の設定の「ツール > External Symbols」を開いて 「Decompile methods」をオフにして保存すると 宣言に移動した時に関数の中身などがデコンパイ…

【Rider】XML ドキュメントコメントをすべて折りたたむ方法

概要 Rider メニューの「コード > 折りたたみ > Doc コメントを折りたたむ」を選択すると XML ドキュメントコメントをすべて折りたたむことができる 参考サイト様

【Unity】The class named 'XXXX' is not derived from MonoBehaviour or ScriptableObject!

概要 The class named 'XXXX' is not derived from MonoBehaviour or ScriptableObject! Console ウィンドウにこのような警告メッセージが表示される場合は シーンに存在するゲームオブジェクトに MonoBehaviour を継承していないクラスのスクリプトがアタッ…

【Unity】GameObject (named 'XXXX') references runtime script in scene file. Fixing!

概要 GameObject (named 'XXXX') references runtime script in scene file. Fixing! Console ウィンドウにこのような警告メッセージが表示される場合は シーンに存在するゲームオブジェクトに MonoBehaviour を継承していないクラスのスクリプトがアタッチ…

【Unity】'XXXX' is missing the class attribute 'ExtensionOfNativeClass'!

概要 'XXXX' is missing the class attribute 'ExtensionOfNativeClass'! Console ウィンドウにこのようなエラーメッセージが表示される場合は シーンに存在するゲームオブジェクトに MonoBehaviour を継承していないクラスのスクリプトがアタッチされている…

【Unity】You are trying to replace or create a Prefab from the instance 'XXXX' that contains the script 'YYYY', which does not derive from MonoBehaviour. This is not allowed.

概要 Saving failed. Check the Console window to get more insight into what needs to be fixed. プレハブを編集して保存する時に上記のエラーダイアログが表示されて You are trying to replace or create a Prefab from the instance 'XXXX' that conta…

【Unity】You are trying to replace or create a Prefab from the instance 'XXXX' that references a missing script. This is not allowed.

概要 Saving failed. Check the Console window to get more insight into what needs to be fixed. プレハブを編集して保存する時に上記のエラーダイアログが表示されて You are trying to replace or create a Prefab from the instance 'XXXX' that refer…

【Unity】Time.deltaTime をグラフで可視化できる「DeltaTimeChecker」紹介

はじめに 「DeltaTimeChecker」を Unity プロジェクトに導入することで Time.deltaTime をグラフで可視化できるようになります 使用例 クイックスタート 空のゲームオブジェクトに「Time Graph」をアタッチして Texture に rect.png を設定することで使用で…

【Unity】タイルマップの各タイルの当たり判定を結合する方法

概要 タイルマップの各タイルの当たり判定を結合したい場合は Tilemap Collider 2D を保持しているゲームオブジェクトに 「Rigidbody 2D」と「Composite Collider 2D」を Add Component して Rigidbody 2D の「Body Type」を「Dynamic」以外にして Tilemap C…

【Unity】TerrainTile の当たり判定を Sprite から Grid に変更する方法

概要 TerrainTile は通常は当たり判定がスプライト状になりますが tileData.colliderType = Tile.ColliderType.Sprite; TerrainTile.cs 75 行目の上記の処理を tileData.colliderType = Tile.ColliderType.Grid; このように書き換えることで 当たり判定をグ…

【Unity】AndroidManifest をコードから編集できる「AndroidManifestReflection」紹介

はじめに 「AndroidManifestReflection」を Unity プロジェクトに導入することで AndroidManifest をコードから編集できるようになります 使用例 using UnityEditor; using UTJ.Android.Extensions; internal static class Example { [MenuItem( "Tools/Hoge…

【Rider】JetBrains Rider の設定を複数のパソコンで同期する方法

概要 Rider にログインしている状態で Rider 右下の雲のアイコンを押して「同期を有効にする...」を押します 必要に応じてチェックボックスをオンにして「設定の同期を有効にする」を押します しばらく待機して「IDE 設定が同期されました」と表示されたら …

【Unity】Unity 再生時に Tilemap をリフレッシュするエディタ拡張

ソースコード using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; [InitializeOnLoad] internal static class Example { static Example() { EditorApplication.playModeStateChanged += change => { if ( change != PlayModeStateChange.E…

【Unity】Shaper 2D で図形に合わせてコライダを適用する方法

概要 Shaper 2D の「Auto collider 2D」を「Polygon」に変更すると 図形に合わせてコライダを適用できる

【VS Code】選択中の行数を表示できる拡張機能「Selected Lines Count」

概要 「Selected Lines Count」を VS Code に導入することで 選択中の行数を表示できるようになります 使用例

【Unity】メモリが許す限り Profile を記録できる簡易プロファイラ「UnityProfilerLiteKun」紹介

はじめに 「UnityProfilerLiteKun」は メモリが許す限り Profile を記録できる簡易プロファイラです 使用例 クイックスタート Unity メニューの「Window > UTJ > UnityProfilerLiteKun」を押して 通常の Profile と同様にビルドしたプレイヤーに接続して レ…