.NET 6でWindowsサービスを作成する

.NET6 でWindow サービスを作成する方法の紹介です。 確認環境 作成と動作確認環境は以下の通りです。 .NET6 VisualStudio 2022 Windows11 プロジェクトの作成と準備 まず「ワーカーサービス」プロジェクトを「MyService」という名前で作成します。今回はト…

TeamsのOfficeファイルをローカルのショートカットから開く

Teams 上にアップロードした Excel, Powerpoint などのファイルへのショートカットを作成してデスクトップから開く方法です。 この方法で作成したショートカットは Teams 上の共有ファイルを直接を開くことができます。 この方法でショートカットから開くと…

WESL_UserSettingをC#から参照する

Windows OS 搭載端末をシンクライアント化(キオスク モード化)するようなシェルランチャーを指定する場合などには WESL_UserSetting を使用します。 これを C# の ManagementObject を通じて設定を参照する方法の紹介です。 前提条件として OS の「シェル ラ…

【2022年10月】Unity2021.3のおすすめ安定バージョン

2022-10-07 2022年10月07日現在、Unity 2021 は 2021.3.11f1 まで出ていますが、なんか不具合があったりしてどのバージョンがベストか考えることがあったので所感を書いておきます。 結論は、2021.3.5f1 がベストです。 以下の不具合が回避できたほうがいい…

【C#】TimeSpanの書式指定方法

System.TimeSpan 型の書式指定の方法です。 DateTime 型とは ToString の書式の指定が異なるので同じ感覚で記述すると以下の「System.FormatException」が発生します。 // こんな感じのエラーが出る 'span.ToString(@"dd\d\a\y mm\:ss\.fff")' は型 'System.…

【Unity】ゲーム画面を1秒に1回画像として保存する

Unity でゲーム画面を1秒に1回撮影して画像として保存する方法の紹介です。 本記事は、開発中の Editor の GameView 表示を一定時間ごとに画面のスクリーンショットを連続で自動撮影して保存したい、のような場合にどうすればよいのかの紹介です。 撮影には…

TweenCancelBehaviourの指定ごとの挙動

DOTween + UniTask 環境で ToUniTask に渡す TweenCancelBehaviour の識別子ごとの挙動の説明です。 前提として、DOTween を UniTask で await するときに挙動を指定する ToUniTask メソッドには TweenCancelBehaviour を渡すことでキャンセル時の挙動を指定…

【C#/Unity】A*(A-Star)で経路探索を実装する

Unity の場合、3D, 2D ともに NavMesh とエージェントを使用すれば経路探索を自力で実装する機会はないかもしれませんが、経路探索をA*(A-Star)というアルゴリズムを自分で実装する場合の考え方と実装の紹介をしたいと思います。 グリッドベースの A* の経路…

【C#】Tupleで値を入れ替える時の処理速度

かなり前に Tuple で値を入れ替える方法を紹介しましたが、普通に入れ替えるのと、Tuple を使用して値を入れ替えるので処理速度がどの程度違うのか確認します。 takap-tech.com 確認環境 確認環境は以下の通りです。 .NET6 + C# 10.0 VisualStudio 2022 Wind…

【C#】Timerで1日1回任意の時間に処理を実行する

C# で Tiemr を使って1日1回任意の時間に処理を実行する方法を紹介したと思います。 タスクスケジューラーにC#のプログラムを登録すれば、特別な実装をしなくてもOSが自動で処理を起動してくれるます。が、その手段が取れない or 長時間起動しているプロセス…

【DOTween/UniTask】Forgetした後にDestroyすると警告が出る

急にDestroyすると警告が出る 解決方法 AsyncWaitForCompletionは使用しないこと UniTask + DOTween で UniTask を Forget した後、そのメソッド内でゲームオブジェクトを触ってる最中にゲームオブジェクトを Destroy すると警告が出る対応方法です。限定的…

【C#】コンソールアプリでMessagePipeを使う

前回コンソールアプリ上で「Microsoft.Extensions.DependencyInjection」を使用した DI を環境を構築しましたが、今回は、この環境を使って Cysharp がリリースしているメッセージングライブラリの「MessagePipe」をコンソールアプリに導入して動作を確認し…