【Unity】スクリプトを変更するたびにコンパイルが走らないようにする

Unity を使用中にエディタでスクリプトを編集 → 保存すると Unity 上でスクリプトのコンパイルが実行され、その都度作業が中断されるのを防止する設定です。 スクリプトのコンパイルが走ると画面右下のチェックマークが回転するプログレスに変化して Unity …

VisualStuiodでCSSを階層インデントしない

VisualStudio でCSSを編集していると、CSSの名前に「.」とか「:」が入ると自動でインデントされてしまいますがこれをオフにする方法です。 例えばこんな感じになります。 .btn { top: 50%; left: 50%; height: 100%; color: #BFC3C7; font-size: 16px; paddi…

【Windows11】文字サイズを変更するとタイトルバーの高さおかしくなる

Windows11 では文字サイズを大きくすることができます。以下のサイトのように設定から大きくすることができます。 https://paso-kake.com/it/windows11/10982/ この設定でフォントを、大きくする → 元のサイズに戻す、操作後にタイトルバーの高さが大きくな…

【C#】Taskのキャンセル

C# 標準の Task のキャンセルの方法です。どちらも同じ方法でキャンセルできます。 標準で CancellationTokenSource から得られる CancellationToken を Task.Run の第2 引数に渡すことでキャンセルをハンドルできるようになります。 Taskのキャンセル stati…

【C#】INIファイルを読み書きする(DllImportなし)

INI ファイルを C# で読み書きするために DllImport で Windows の User32.dll 使うのは確かに簡単ですが汎用性に欠けると思うので、純粋な C# のみかつ、.NET 4.6 くらいからコピペで使えるライブラリを作成してみました。 ライブラリの性能 確認環境 形式…

【C#】正規表現で一致した部分を取得する

C#の正規表現で、パターンに一致した部分を取得することをグループ化する、などと呼びます。この正規表現のある条件に一致した部分を取得する方法の紹介です。 確認環境 VisualStudio2019 C# 9.0(バージョン不問 名前空間 using System.Text.RegularExpress…

【C#】DateTime.TryParseExactの使い方

すぐ忘れて何度も調べることになるのでメモ 確認環境 VisualStudio2019 C# 9.0(バージョン不問 コード例 具体的にフォーマットを指定する場合以下のように指定する bool isOK = DateTime.TryParseExact("20220413123045", "yyyyMMddHH:mm:ss", CultureInfo.…

【C++】無効値を指定可能なstd::optionalの使い方

C++17から使えるようになった値型にもnullのような無効な値を指定できるnulloptの使い方です。 宣言 ヘッダー宣言 #include <optional> // 使うときはこれを宣言する 判定方法 std::optional を受け取ったときの判定方法 // (1) サンプル用のクラス class Sample { pub</optional>…

【C#】TypeCodeを使った高速な型判定を行う?

ライブラリなどの比較的低レイヤー寄りの実装をしていると受け取った、ジェネリックな型や、object 型で受け取った変数がどの型なのかを判定するケースがありますが、タイトルの通り TypeCode を使うと Type を使った判定より、効率的かつ高速な処理にできる…

【Unity】2D用のNavMeshでTimeMap以外の領域や障害物をベイクする

2D 用の NavMesh の導入方法とタイルマップへの適用方法は記事がいくつかあるので、導入~タイルマップに適用するまでは比較的簡単にできると思います。ただ、実際にトップダウン系のゲームなどで使用する場合、障害物を設置したり経路を動的に足したりでき…

【Unity】2Dゲームでプレイヤーがオブジェクトに回り込んだ時にシルエットを表示する

トップダウンやクォータービューなどの見下ろし型の2Dゲームで、プレイヤーの操作キャラクター(もしくは敵キャラなど)が、高さのあるオブジェクトの後ろに回り込んだ時にオブジェクトに隠れて見えなくなった時、どこに居るのかが分からなくなってしまう事…

【C#】2つのキーを管理するDictionary

よく2つのキーを持つ Dictionary が必要になるときがありますが以下のように Dictionary を2重にすると「管理が面倒」「後から見たときに意味が分からない」など技術的負債になりがちです。 // 2つのキーで管理したいのでDictionaryを2重に宣言する pribate …