コガネブログ

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

2021-11-01から1ヶ月間の記事一覧

【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 と同様にビルドしたプレイヤーに接続して レ…

【Unity】Overdraw を計測して解析できる「UnityOverDrawKun」紹介

はじめに 「UnityOverDrawKun」を Unity プロジェクトに導入することで Overdraw を計測して解析できるようになります 使用例 クイックスタート 「OverdrawCamera」プレハブをシーンに配置して 「Target Display」を「Display 1」以外に変更し、 「Master Ca…

【Unity】Risk of unwanted modifications

概要 Risk of unwanted modifications The following scripts on the Prefab open ion Prefab Mode use the [ExecuteInEditMode] attribute which means they may accidentally affect or be affected by Play Mode: XXXX See the documentation for [Execut…

【Unity】Corgi Engine で動く床に合わせてプレイヤーが移動しない場合

概要 Corgi Engine で動く床に合わせてプレイヤーが移動しない場合、 動く床に「Moving Platform Free」をアタッチすると 動く床に合わせてプレイヤーが移動するようになります

【Rider】ツールバーに好きなコマンドを追加する方法

概要 Rider のツールバーの空いている箇所を右クリックして 「メニューおよびツールバーをカスタマイズ...」を選択して 「メインツールバー」の中の項目を選択した状態で 「+ > アクションを追加...」を選択して 追加したいコマンドを選択して「OK」を押して…

【Fork】コミットメッセージを変更する方法

概要 コミットログを右クリックして「Interactive Rebase > Reword...」を押して 新しいコミットメッセージを入力して「OK」を押して 「Rebase」を押すとコミットメッセージを変更できます

【Unity】スクリプトからキャッシュサーバ(Accelerator)にアクセスしているか確認する方法

概要 using UnityEditor; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.update += () => { Debug.Log( AssetDatabase.IsConnectedToCacheServer() ); }; } } AssetDatabase.IsConnectedToCacheServer() を使用す…

【Unity】Corgi Engine でプレイヤーがやられたかどうか検知する方法

概要 using System; using MoreMountains.CorgiEngine; using MoreMountains.Tools; using UnityEngine; public sealed class PlayerDeathListener : MonoBehaviour, MMEventListener<CorgiEngineEvent> { public event Action OnDead; private void OnEnable() { this.MMEvent</corgiengineevent>…

【C#】Flags が付いている列挙型で ALL を表現する方法

C#

概要 [Flags] public enum PokemonType { FIRE = 1 << 0, WATER = 1 << 1, GRASS = 1 << 2, ALL = FIRE | WATER | GRASS, } 上記のように Flags が付いている列挙型で ALL を表現している場合、 [Flags] public enum PokemonType { FIRE = 1 << 0, WATER = 1 …

【Visual Studio】構造体の表示色を変える方法

概要 Visual Studio メニューの「ツール > オプション」を選択して 左メニューの「環境 > フォントおよび色」を選択して 「ユーザータイプ - 構造体」を選択して「前景色」を変更して「OK」を押すと 構造体の表示色を変更できます

【Unity】Kinematic 2D で急な坂道(Slope)の上でジャンプできないようにする方法

概要 「Vertical Movement」の「Jump Only On Stable Ground」をオンにすると 急な坂道(Slope)の上でジャンプできないようになる

【Unity】Corgi Engine でブロックに潰されたらプレイヤーがやられるようにする方法

概要 Corgi Engine でブロックに潰されたらプレイヤーがやられるようにしたい場合は 「Character Crush Detection」と「Health」を使用する if (DieWhenCrushed) { // we kill the character _health.Kill (); CorgiEngineEvent.Trigger(CorgiEngineEventTyp…

【Unity】Corgi Engine で乗っている坂道(Slope)の角度を取得する方法

概要 CorgiController.State.BelowSlopeAngle を参照する using MoreMountains.CorgiEngine; using UnityEngine; [RequireComponent( typeof( CorgiController ) )] public sealed class Player : MonoBehaviour { [SerializeField] private CorgiController…

【Unity】Corgi Engine で坂道(Slope)の上でジャンプできないようにする方法

概要 Corgi Engine で「Corgi Controller」の 「Maximum Slope Angle」に設定している角度よりも急角度な坂道に乗っている時に ジャンプできないようにしたい場合は以下のようなスクリプトを作成します using MoreMountains.CorgiEngine; using UnityEngine;…

【Unity】Corgi Engine で坂道(Slope)を滑らない場合

概要 Corgi Engine で「Corgi Controller」の 「Maximum Slope Angle」に設定している角度よりも急角度な坂道に乗った時に 坂道を滑らずに自由に移動できてしまう場合は 「Corgi Conteoller」の「Ray Offset」の数値を増やして「Stick To Slopes」をオフにす…

【Unity】Corgi Engine で Dynamic な RIgidbody2D のオブジェクトを押せないようにする方法

概要 Corgi Engine では Dynamic な RIgidbody2D のオブジェクトを デフォルトでは押せてしまいますが Corgi Controller の「Physics 2D Interaction」をオフにすると 押せなくなります

【Unity】アセットバンドルの中身の差分を比較できる「UnityAssetBundleDiffKun」紹介

はじめに 「UnityAssetBundleDiffKun」を Unity プロジェクトに導入することで アセットバンドルの中身の差分を比較できるようになります 使用例 クイックスタート Unity メニューの「Window > UTJ > UnityAssetBundleDiffKun」を選択して 表示されたウィン…

【Rider】Alt + Enter の「コンテキストアクションの表示」に Ctrl + . を割り当てる方法

概要 Rider の設定の「キーマップ」から「コンテキストアクションの表示」をダブルクリックして 「キーボードショートカットの追加」を選択して 「コンテキストアクションの表示」の欄を選択した状態で Ctrl + . を押して「OK」を押します 警告ダイアログが…

【Rider】JetBrains Rider を日本語化する方法(2021年11月)

概要 日本語化用のプラグインが Rider 上の Markerplace から見つからない場合は 上記のサイトを開いて「Get」を押していずれかのバージョンの「Download」を押します .jar ファイルがダウンロードできたら Rider メニューの「File > Settings...」を押して …