sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

C#

WPF Prism サンプルコードの学習5 (Navigation, Invoke)

14. UsingEventAggregator 15. FilteringEvents 16. RegionContext 17. BasicRegionNavigation 18. NavigationCallback 19. NavigationParticipation 20. NavigateToExistingViews 21. PassingParameters 22. ConfirmCancelNavigation 23. RegionMemberLifet…

WPF Prism サンプルコードの学習4 (Commands)

11. DelegateCommands 12. UsingCompositeCommands 13. IActiveAwareCommands まとめ 参考 WPF + .NET Core (5以降は Core は省略される) で Prism を使ってみよう。 使用している Prism のバージョンは次のとおり: 8.1.97 (2021/05/25) GitHub - Prism Sa…

WPF Prism サンプルコードの学習3 (ViewModelLocator)

8. ViewModelLocator 9. ChangeConvention 10. CustomRegistrations まとめ 参考 WPF + .NET Core (5以降は Core は省略される) で Prism を使ってみよう。 使用している Prism のバージョンは次のとおり: 8.1.97 (2021/05/25) GitHub - Prism Sample WPF …

WPF Prism サンプルコードの学習2 (Module)

7. Modules 7.1 Modules - AppConfig 7.2 Modules - Code 7.3 Modules - Directory 7.4 Modules - LoadManual 7.5 Modules - Xaml まとめ 参考 WPF + .NET Core (5以降は Core は省略される) で Prism を使ってみよう。 使用している Prism のバージョンは…

WPF Prism サンプルコードの学習1 (Bootstrapper, Region)

1. BootstrapperShell 2. Region 3. Custom Region Adapter 4. View Discovey 5. View Injection 6. ActivationDeactivation 参考 WPF + .NET Core (5以降は Core は省略される) で Prism を使ってみよう。 使用している Prism のバージョンは次のとおり: …

Prism Full App (.NET Core) テンプレートを体験する

テンプレートの構成について WPF_Core_FullSample プロジェクト Core プロジェクト Modules.ModuleName プロジェクト Services.Interfaces プロジェクト Services.Services プロジェクト 新しいサービスを追加するテスト Services.Interfaces の修正 Service…

DI パターンを体験するために IoC Unity を使ってみる

テスト1 テスト2 テスト3 テスト4 サンプル 参考 IoC Unity とは、ゲームエンジンの Unity ではないです。inversion of control (IoC) コンテナの Unity です。 DI コンテナを C# で体験してみるなら、デファクトスタンダートに近い存在である Unity コ…

DI パターンと DI コンテナについて

DI DI コンテナ サービスロケータのアンチパターン テストと DI まとめ 参考 DI とは「dependency」を「injection」するプログラミングのデザインパターンのこと。日本語訳だと「依存性の注入」となっており、どのように意味を解釈したものかむつかしくなっ…

C# インターネットに接続しているかどうかを調べる方法

ReadySunValley 0.61.0 のコード ReadySunValley 0.52.1 以前のコード 補足 おまけ 参考 ローカルアプリケーションを作るときに、ネットワーク接続の有無をチェックすることがあります。どういうコードを書くでしょうか。 Windows 10 から Windows 11 への更…

C# Core Audio API を使ってみる

音量を変更するための P/Invoke 音量を変更するコード サンプル 参考 Core Audio API は Windows Vista から追加された OS のスピーカー設定(音量など)にアクセスするためのものです。 Core Audio API OS のスピーカーまわりをイジるには丁度よい API なの…

WPF + .NET 5 で CsWin32metadata を利用するサンプル

.NET 5 環境で Win 32 API を利用しようと思ったら、従来なら P/Invoke(DllImport)で利用する関数や構造体なんかを再定義して利用していたと思います。2021 年末を完成目標にして「win32metadata」が立ち上がっているので、こっちを利用してみるテスト。 w…

C# DMM 版ウマ娘のウィンドウ画像をキャプチャー保存する (+OCR メモ)

指定したウィンドウ(DMM 版ウマ娘)を取得する ハンドルからウィンドウの表示画像を取得する 画像の切り出し OCR にかけるとき サンプル 参考 DMM 版のウマ娘のウィンドウ画像をキャプチャーをして、あれこれサポートするツールでは「UmaUmaCruise」が有名…

C# .Net Framework と Visual C 再配布パッケージのインストール確認

.NET Framework のバージョン確認 Visual Studio 20XX Visual C++ 再頒布可能パッケージの確認 サンプル おまけ(ランタイム is なに) 参考 いまでも WPF の Windows ネイティブアプリケーションを作るときに .NET Framework を使うことがあるのですが、古…

Unity アセット管理 Addressables の基本的な考えと使い方

Addressables の仕組み is なに? Addressables の使い方 テスト Event Viewer ロード/アンロードを可視化する 参考 画像などのアセットデータをプロジェクトに追加して利用する方法として、以下のような手法が主に利用されると思います。 Resources Asset B…

Unity MVP パターンを利用した UI 設計

MVP パターン is なに? Model は POCO なオブジェクトか? サンプル 参考 この記事は torisoup さんの「UniRX/UniTask 完全理解」P318 の MVP パターンについて個人的に学習内容をメモする記事です。 MVP パターン is なに? UI を実装するときの実装パター…

Unity アプリ名、アイコン、スプラッシュスクリーンなどアプリ開発の初期設定まとめ(Android)

アプリの名称の設定 デフォルトの名前空間設定 アイコンの設定(Android) スプラッシュスクリーンの設定 アプリケーションのコードビルド 参考 アプリを作成するときに最低限やったほうがいいと思った設定をまとめます。(Android 対応) アプリの名称の設…

Unity HP スライダーのサンプル

スライダーを HP(体力)ゲージにする 体力 33% 以下 で Fill Area を差し替える HP(体力)ゲージを減らすサンプル サンプル 参考 テストしていたプログラムの副産物として HP スライダーが出来たのでメモ。 EventTrigger のちょうどいいテストデータでもあ…

Unity 放置ゲームにおける「日付と時刻変更」基本的な対策

日付と時刻の設定値を取得するネイティブプラグイン ネイティブプラグインを利用する Unity スプリプト Android の APK をうまく出力できないとき 動作のテスト 対策の発展形 サンプル 参考 スマートフォンの放置ゲームを作ろうと思ったら、開発者が必ず注意…

Unity エディタ拡張でスクリプトファイルのテンプレートを作成する

Unity のスクリプトファイルを標準の作り方だと「Create/C# Script」をつかうと思いますが、十分なフォーマットとは言えないですよね。ほかにも 文字コードを OS にあわせたい MonoBehavior を継承しないクラスでいいときがある ときどきは最初から UniRx を…

Unity C# 非同期、async/await、コルーチンを整理する

async/await とは await をつけたコードはどのような内部動作になるか コルーチンと yield return Unity の非同期処理(≠マルチスレッド) 用語のややこしさ サンプル 参考 タイトルのとおり、「非同期」がキーワードです。たとえば、つぎのような問いを整理…

C# System.Text.Json で非数値 (NaN, Infinity) を書込/読込する方法

書き込みのテストコード(エラー発生) 書き込みのテストコード 読み込みのテストコード(エラー発生) 読み込みのテストコード シリアライズのオプションの意味 サンプル 参照 C# で JSON を扱うときは、単純に「System.Text.Json」ケースが増えてきました…

Unity スクリプトコードを Visual Studio でステップ実行・ブレークポイントを使ってデバッグをする

環境構築 デバッグ(アタッチ)のやり方 デバッグの便利な設定・応用 DebuggerDisplay 属性 デバッグとテスト 参考 Unity のコード書いたあとに、Visual Studio(コードエディター)を使って、コードのステップ実行やブレークポイントを設置して気になる箇所…

Unity コードをマネージド プラグイン (DLL) を作成して利用する

Visual Studio 2019 でライブラリープロジェクトを作成 クラスライブラリーに Unity の DLL を追加する 利用 参考 C# で書いたコードをあらかじめ マネージド プラグイン として DLL 化して、Unity で利用するやり方をメモした記事です。自分で使うライブラ…

C# Disposable な実装にしてイベントのメモリーリークを防ぐ

実装(イベントの使い方) Disposable のコーディング イベントを Disposable なオブジェクトに詰め込む サンプルコード サンプル 参考 2022 年に「C# DI コンテナと CompositeDisposable の組み合わせ」の記事を書きました。DI コンテナの利用有無は、ほと…

Unity ローカルプッシュ通知のやり方 (Android)

Unity Mobile Notifications Package をインストールする プロジェクト設定 アイコン アセット共通の命名規約の例 スプリプトの実装 singleton クラスで保持する例 通知をテストする(+使い方) サンプル 参考 この記事は Unity で(ローカル)プッシュ通知…

Unity 変数の値が変化したとき“1度だけ”コードを実行したい「ObservedValue」パターン

「ObservedValue」はどういうものか(The new class in Extensions, ObservedValue: what is it for and how to use it) 補足(ObservedValue のコード確認) パフォーマンスに関する意見 参考 変数の値が変化したとき“だけ”コードを実行したいというような…

Unity 開発に関する 50 の Tips 〜ベストプラクティス〜(2016 Edition)

この記事は「Unity開発に関する50のTips 〜ベストプラクティス〜(翻訳)」を読んでとても参考になったので、その続編になる「50 Tips and Best Practices for Unity (2016 Edition)」の内容を超訳(勉強のため個人的に訳)したものです。 Qiita にもあげて…

Unity アプリケーションのエントリーポイントを作る

RuntimeInitializeOnLoadMethodAttribute 注意 過去のログ 参考 Unity のプログラムを作成していて、ゲーム全体を通して一番最初に実行される(通常の条件で最初に実行させる)メソッドを使いたいときがあると思います。 他のものでたとえると、C++ や C# の…

Unity ダイアログをポップアップするときのエフェクト(拡大・透過)

拡大(スケール)エフェクトの追加 透過度エフェクトの追加 サンプル 参考 「Unity キャンバス内に Scroll View を使ったダイアログをポップアップ」の記事の続きです。 前回の記事で、ポップアップするダイアログをシンプルに作成しました。なので、応用と…

Unity キャンバス内に Scroll View を使ったダイアログをポップアップ

ダイアログの構成 ダイアログの構成を考える スクリプト サンプル 参考 ダイアログを表示するサンプルです こんな感じで、Canvas 上のボタンを押下すると、画面全体に背景つきのダイアログ(ポップアップ)を表示するサンプルです。(エフェクトも省略してい…