TweenCancelBehaviourの指定ごとの挙動

DOTween + UniTask 環境で ToUniTask に渡す TweenCancelBehaviour の識別子ごとの挙動の説明です。 確認環境 Unity 2021.3.5f1 Windows 11 + VisalStudio 2022 DOTween UniTask TweenCancelBehaviour 識別子ごとの挙動は以下の通りです。 キャンセルすると…

【Unity+C#】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」をコンソールアプリに導入して動作を確認し…

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

.NET 6 でコンソールアプリに DI (=Dependency Injection) 環境を作成して、オブジェクトに依存関係を注入するところまでを確認したいと思います。 使用するライブラリは、「Microsoft.Extensions.DependencyInjection」です。 確認環境 動作確認環境は以下…

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

ASP.NET 系のテンプレートで作成すると何も考えずとも汎用ホスト(=Generic Host) が使用可能、つまり、HostBuilder が利用可能な状態から始まりますが、コンソールアプリから始めると何も存在しないため HostBuilder が宣言しても見つからないため意外とどう…

【C#】連続で処理が失敗した時に何度も同じような処理をしない

例えば定周期処理などで、エラーが出ても処理を継続するような場合に、最初の一回は例外処理を行うけど、処理が連続で失敗した場合2回目以降は、処理を行わないようにする実装パターンの紹介です。 この仕組みを使用して実装例ではログを何度も出力しないよ…

VisualStudio2022でnull許容コンテキストを無効化する

VS2022 はデフォルトで「null 許容コンテキスト」というものが有効化されています。 これが有効化されていると以下のような警告が表示されます。 警告 CS8600 Null リテラルまたは Null の可能性がある値を Null 非許容型に変換しています。 警告 CS8601 Nul…

ASP.NET WebAPIでURLパラメーターを受け取る

URLパラメータ*1は、URLの最後に以下のように加えられた変数を指します。 https://localhost:8080/app/v1/data?code=100 この「code=100」の部分を ASP.NET Core Web API で受け取る方法です。 確認環境 .NET 6 + ASP.NET Core Web API VisualStudio 2022 Wi…

【C#】ViewModelの実装をスニペットで軽減する

WPF/UWP などの XAML 系実装で使用する ViewModel は OSS(Livet, Prism ReactiveProperty) などを使用しない場合、INotifyPropertyChanged 周りの実装が冗長で、繰り返しが面倒なので軽減策の紹介したいと思います。 アプローチ方法は以下の通りです。 共通…