VisualStudioのプロジェクトAがBに依存しているとき、AがDebugビルドでもBはReleaseビルドにする

依存関係の設定 AがDebugビルドでもBはReleaseビルドにする 「構成マネージャー」をクリック

OpenSiv3DでPSDファイルを読み込む

SivPSD この記事はSiv3D Advent Calendar 2023の21日目の記事として執筆いたしました。 OpenSiv3Dのゲーム開発でPSDファイルを利用したいと思い、PSD読み込みライブラリをpsd_sdkを用いて作成してみました。以下に導入方法と使い方を説明いたします。 github…

C#でdefer

C#でdefer IDisposableとusingで再現。 public class ScopedDefer : IDisposable { private readonly Action action; public ScopedDefer(Action action) { this.action = action; } public void Dispose() { action(); } } 使い方 stack++; using var _ = n…

2023年から始めるNINTENDO64ゲーム開発

2023年から始めるNINTENDO64ゲーム開発 ~64-bitセンセーション~ この記事はKMCアドベントカレンダー15日目の記事として執筆いたしました。 NINTENDO64について みなさん御存知の通り、N64は20世紀で最も素晴らしいゲームハードウェアの一つです。発売され…

DOTweenとUniTaskのキャンセル処理について

DOTweenとDOTweenの間にキャンセル処理を挟むとき.... await transform.DOMoveY(5.0f, 0.3f).SetEase(Ease.OutBack) .ToUniTask(cancellationToken: cancel); cancel.ThrowIfCancellationRequested(); await transform.DOMoveY(-5.0f, 0.3f).SetEase(Ease.Ou…

VisualC++で異なるディレクトリに同名ファイルが入っていてもビルドが通るようにする

以下の記事を参照した。 altebute.hatenablog.com 構成プロパティ / C++ / 出力ファイル ASM リストの場所とオブジェクト ファイル名を変える。 上記事では $(IntDir)%(RelativeDir) であったが、%(RelativeDir) が絶対パスになってしまったのでこれだけなら…

既存のChromeの拡張機能を改造する

既存のChromeの拡張機能を改造する ローカルに保存されているソースディレクトリをコピー Windowsの場合は %LOCALAPPDATA%\Google\Chrome\User Data\ まで行ってから {拡張機能ID} で探せば出てくる 識別しやすいように、コピーした方にあるmanifestの "name…

RiderでCMakeプロジェクトを並列ビルドさせる

RiderでCMakeプロジェクトを並列ビルドさせる 直接slnを書き換えるだけだとcmake ..のたびに設定が戻ってしまう 以下のように対処 configボタンを押して MSBuild global propertiesにMPを設定したらできた

Unityリポジトリをrobocopyでバックアップしておく TempとLibralyを除外 タスクスケジューラで定期的に実行しておく set source=コピー元パス set dest=コピー先パス robocopy %source% %dest% ^ /S /E /COMPRESS /MIR ^ /XD %source%\Temp %source%\Library

UnityでSerializeFieldを再帰的にnull check

UnityでSerializeFieldを再帰的にnull check public static void AssertNotNullSerializeFieldsRecursive( MonoBehaviour checking, string projectNameSpace, List<MonoBehaviour> checkedList) { #if UNITY_EDITOR bool isRoot = checkedList.Count == 0; var fields = ch</monobehaviour>…

UnityでScriptableObjectを開くエディタ拡張

UnityでScriptableObjectを開くエディタ拡張 特定のウィンドウを開くには EditorApplication.ExecuteMenuItem(string) を使うといい public static void OpenScriptableObjectInspector(string assetPath) { // 指定されたScriptableObjectを取得 var script…

UnityのPackageMangerで"Error when executing git command. fatal: not in a git directory"的なエラー

UnityのPackageMangerで"Error when executing git command. fatal: not in a git directory"的なエラー 外付けSSDに入ってたプロジェクトで発生したが、ドライブを変えたら直った

Haskell/SDL2関連をWindowsでビルドする

Haskell/SDL2関連をWindowsでビルドする 2023年初頭あたりにビルドしたときのメモ Haskellでsdl2単体を使うだけなら普通にビルドが通る sdl2-mixerも同様に特に問題が起きなかったように思う (記憶がやや曖昧) sdl2-image, sdl2-ttf, sdl2-gfx それぞれ別途…

RiderのLive TemplateでUnityのSerialize Fieldをいい感じにかけるようにする

RiderのLive TemplateでUnityのSerialize Fieldをいい感じにかけるようにする こんな感じにできるようにする 設定 Settings / LiveTemplate / Unity へ移動 New Template を押す こんな感じに入力してsfgetを定義 [UnityEngine.SerializeField] private $TYP…

Vedeo Speed Controller をニコ動で有効にする

Vedeo Speed Controller をニコ動で有効にする 設定に移動する Otherのトグルをこんな感じにしたら動作した

UniTaskでエラーが起きた時の処理をいい感じにする

UniTaskでエラーが起きた時の処理をいい感じにする e.StackTrace でエラーのスタックトレースを取れる public static async UniTask RunTaskHandlingErrorAsync(this UniTask task, Action<Exception> onError) { try { await task; } catch(Exception e) { Debug.LogEr</exception>…