C# - シンボリックリンクを操作する(.NET 5以前)
TL;DR.NET 6 でDirectoryクラスにCreateSymbolikLinkメソッドが追加されたが、5以前では使えないため Win32API を使って操作する。 注意する点は実行に管理者権限が必要なため、Unity などから利用するのは難しいかもしれない。.NET 6...
View ArticleLINQPad - LINQPad 5 で使われる .NET Framework のバージョンを確認する
LINQPadはインストールされている最新 .NET Framework 4.xを対象としている。以下のフォーラムで最新のバージョンが何であるか確認する linqファイルが共有されている。forum.linqpad.net以下コードの抜粋。void Main() { GetFWVersion().Dump(); } static Version _version; publicstatic...
View ArticleC# - 管理者権限でコマンドプロンプトを実行する
Verbに RunAsを設定して、UseShellExecuteを trueにする。 Hiddenが設定されている時に、WaitForExitで待機すると処理が終了しない可能性があるので注意。publicstaticclassCmd { publicstaticvoid CreateSymbolicLink(string src, string dest) { Execute($"/k mklink...
View ArticleUnity - シンボリックリンクを操作するエディター拡張
機能フォルダのみ操作可能ルートで指定したディレクトリ配下のシンボリックリンクを検索して一覧表示シンボリックリンクの作成と削除ソースコードは以下に。github.com
View ArticleUnity - 既定のウィンドウのクラス名をすべて取得する
privatevoid Main() { var builder =new StringBuilder(); var list = GetAllEditorWindowTypes(); foreach ( var n in list.Select(x => x.ToString()).OrderBy(x => x) ) { builder.AppendLine( n ); }...
View ArticleVisual Studio Code - 拡張機能「Text Tables」
概要Markdownのテーブル作成を少し便利にしてくれる拡張機能。行や列の入れ替えが簡単にできる。marketplace.visualstudio.com目次概要目次機能コマンドTable Mode補足機能コマンドコマンドパレットの呼び出しWindows : Ctrl + Shift + PMac : Cmd+Shift+pText Tables: Create table : 列x行(ヘッダー含)...
View ArticleUnity - Editor 拡張のチートシート
目次目次検証環境全般リファレンスOnGUIウィンドウウィンドウを表示するShow位置やサイズの指定ShowModalShowModalUtilityShowUtilityShowAuxWindowShowAsDropDownShowPopupShowNotificationウィンドウを閉じる既定のウィンドウを開くUIパーツ(GUILayout)LabelTextField / TextArea /...
View ArticleLINQPad - BenchmarkDotNet を利用する
NuGet Manager で BenchmarkDotNet を追加する。属性をつけてそのまま実行すると次のエラーが出力される。// Validating benchmarks: // * Assembly LINQPadQuery, Version=1.0.0.569, Culture=neutral, PublicKeyToken=null is located in temp. If you...
View Articleエンジニアリングマネージャー(EM)とは
「エンジニアリングマネージャー」と言われて何をする人かピンとこなかったので、軽く調べてまとめる。まず、EMと言うと「エンジニアリングマネージャー」と「エンジニアマネージャー」に別れるらしい。...
View ArticleAdvent Calendar 検索 2024
TL;DRXで「Advent Calendar」を含み、いいねが10個以上ついた投稿を1日毎に検索するリンク集カレンダー Sun Mon Tue Wed Thu Fri Sat 12345678910111213141516171819202122232425
View Article投げっぱなしのタスク処理(async void、UniTask.Void、Forget)
asyncvoid Awake() { try { Debug.Log("async void"); await UniTask.Delay(5); thrownew Exception($"async void exception : frame {Time.frameCount}"); } catch (Exception e) { Debug.LogError("catch...
View Articleコマンドプロンプト(Git Bash) の表示行数を増やす
コマンドプロンプトのタブの外側を右クリックして設定を開く。左のメニューから「コマンドプロンプト」を開いて、追加の設定 >詳細設定 >履歴のサイズ で変更可能。Windows 11のデフォルトは 9001。Fork の Console からなど、「コマンドプロンプト」で効果がない場合は、「既定値」を開いて、追加の設定 >詳細設定 >履歴のサイズ で変更する。
View Articleドメイン駆動設計(DDD)がゲーム開発に向かない理由 (Why DDD is not suitable for game development)
ドメイン駆動設計は、Wikipediaによると以下の説明がなされている。ドメイン駆動設計(ドメインくどうせっけい、英語: domain-driven...
View ArticleREST API がゲーム開発に向かない理由 (Why REST API is not suitable for game development)
ゲーム開発にREST APIが向かない理由は以下の通り。あらかじめ仕様の全体を見通すことができない処理もデータも複合されたものを求められる事が多い仕様の変化が激しいRESTREST の原則は以下の4つがあるらしい。...
View Articlegit lfs push が100%で止まって終わらない問題
GitHubでリポジトリの統合(モノレポ化)の検証をしてて起きた事象。以下のような状態から10時間以上経過しても終わらなかった。$ git lfs push monorepo --all Uploading LFS objects: 100% (10000/10000), 10 GB | 0 B/sもしくは最後の1個が終わらないみたいな。Uploading LFS objects: 100%...
View ArticleUnityにおけるViewとModelの境界線 (The View and Model Boundary in Unity)
前提ViewとModelは、MVPのViewとModelのイメージ以下は自分の認識...
View Article複数のGitHubアカウントを使わないようにしてもアカウント選択画面が出続ける場合の対処方法
GitやForkで複数のアカウントを使い分けれるようにしていたが、設定を消して1つにしてもコマンド実行時にアカウント選択画面が出続ける場合の対処方法。設定でアカウントが1つになっていることを確認してみる。~/.sshの鍵~/.ssh/configForkの設定それでも出てるので、Git Credential Manager (GCM) がキャッシュを持ってるっぽいので確認する。$ git...
View Articleerror: Authentication required: You must have push access to verify locks
複数アカウントを使ってて、操作対象のリポジトリとは異なるアカウント情報が使われてる時に起きてた。リポジトリを持つアカウントで操作するように設定したら行けた。
View Article複数のリポジトリをモノレポ化する (multirepo to monorepo)
TL;DR複数のリポジトリをモノレポ化した際の備忘録tomono スクリプトを修正したスクリプトを使用リポジトリを移行することにフォーカスした記事以下の内容はこの記事では扱わない モノレポ自体の説明や移行の検討CI/CD、ツールなど運用ルールサンプルのリポジトリを公開してるのでお試し可能目次TL;DR目次概要手順1. 移行するものを決める2. 新しいリポジトリを作る3. 準備4....
View ArticleUnityにおけるDI依存症への警告 (Warning excessive dependence on dependency injection in...
はじめに昨今Unity界隈では、DIが流行していると言っても過言ではない。...
View ArticleFork - git worktreeを利用する
検証環境Fork 2.6.0.0使い方Fork で Worktreeを使う場合、メニューから「Add Worktree...」を実行する。...
View ArticleLitMotion Animation を拡張する
注意点として、Awakeで実行すると予期せぬ動きになるのでStart以降で実行するのが良さそう。完了モーションを完了させる。未再生の場合は再生してから完了させる。 モーションは再生中のままになる。publicstaticvoid Complete(this LitMotionAnimation animation) { if (!animation.IsPlaying)...
View ArticleUnity - Sentry を利用する
目次目次検証環境導入基本構成画面プログラム初期化スコープパッケージの分離Web画面DiscoverTagUser検証環境Unity 6000.0.34f1Sentry Unity 3.0.2導入公式ドキュメント。docs.sentry.ioSentryのWebページから、Settings > Projects から特定のProjectを選択 > Client Keys(DSN)...
View ArticleRider - Tips
目次目次Tipsどこでも検索 (Search Everywhere)スコープとファイルカラー検索ダイアログ一般スコープ(Scope)ファイルカラー使い所参考Tipsどこでも検索 (Search Everywhere)ショートカットキーは、 Shift 2回もしくは Ctrl + ,。使い方は以下を参考に。どこでも検索 | JetBrains Rider...
View ArticleUnity - UnityWebRequestをToUniTaskしてキャンセルするとAbortが呼ばれるようになってる
メモ書き2018年の記事。Abortが呼ばれなかった様子。[UniRx.Async] UnityWebRequestAsyncOperationConfiguredAwaiter周辺で困った話 #UniTask - Qiitaその話のIssue。UnityWebRequest cancellation is not call UnityWebRequest.Abort · Issue #361 ·...
View ArticleUnity - 横断的な例外処理
UniRxやUniTaskなどを使った場合の横断的な例外処理についてのメモ書き。基本的にUniRxでのExceptionは、ストリームが壊れないように堅牢な方向に機能が実装されている。ストリームの内から外へ例外を搬出するのは楽ではない。そういう閉じた世界(例えば画面単位など)で使うのがベターそう。SubjectのSubscribeのonErrorコールバック引数ストリームで起きたエラーが入ってくるS...
View ArticleUnity - CancellationTokenの生成・使い方完全ガイド
UniTask(Cysharp製)で非同期処理を行う際に欠かせない CancellationTokenの使い方を、生成方法・基本構文・応用・GC削減テクニック・ベストプラクティスまで、完全網羅で解説します。🗂 目次🗂 目次✅ CancellationToken の生成・取得手段【完全リスト】1. 明示的に生成する1-1. 通常の CancellationTokenSource1-2....
View ArticleUnityゲーム開発における実践的な立体的設計アプローチ
※ChatGPTとの壁打ちの雑メモ。はじめにゲーム開発における設計は、単に"きれいなコードを書く"ことではなく、変化に耐え、拡張しやすく、分業に対応できる構造をいかに作るかが重要です。Unityを使った中規模以上のゲーム開発では、設計がゲームの完成度と開発効率を大きく左右します。本記事では、Unityにおける代表的な設計手法と、それらを効果的に組み合わせる方法を、"状態(縦)""連携(横)""粒度(...
View Article