【C++/CLI】System::String^をdouble/intに変換する

まず前提は以下の通り。 // これは .NETの型 System::String^ str = "10;" // こっちは .NET/C++(CLI)共通で使える型 double d = 0; 変換に使うメソッドはいくつかあるのでそれぞれの使い方です。 System::String^ str = "10"; double d = 0; int i = 0; // …

【UniRx】MessageBrokerの使い方

UniRx に付属しているプロセス内の簡易型の広域メッセージ送受信ライブラリのMessageBroker の使い方の紹介です。 最近は MessageBroker の代わりによりモダンな MessagePipe というライブラリもリリースされていますが、Unity で単一シーン、簡単な UI しか…

【SQLite】ジャーナルがwalのDBを更新しても内容が変わらない

ものすごい単純な事だけどハマってしまったのでメモ。 INSERT したはずのレコードがなぜか SELECT * しても見えない問題が発生しました。 条件 Windows環境 自分より高い権限が必要な領域にDBファイルを配置している ジャーナルモードはwal 操作内容 管理者…

【UniRx】MessageBrokerを拡張する

UniRx に付属しているプロセス内の簡易型の広域メッセージ送受信ライブラリのMessageBroker をちょっと拡張してみようと思います。 拡張内容 (1) pub/sub は型指定したい (2) 直接 Subscribe したい (3) MessageBroker には触らないで拡張する 確認環境 Unit…

【Unity】タッチ処理の実装(エディタ、実機両対応)

【Unity】スマホとPCの両方のタッチに対応する PCのクリックとスマホのタッチだと実は検出の実装方法が違うとのことで調べてみました。スマホ向けアプリを製作していてエディター上で動作確認しているシーンを想定しています。 // ★PC // 左クリックが押し込…

【C#】MagicOnion(gRPC)+IPC通信

タイトルの通り gRPC のライブラリである MagicOnion を使いつつ IPC(プロセス間) 通信したいと思います。 ちなみに、MagicOnion を使うと WCF を使った RPC の API 呼び出しのワークフローと極めて似た感じで実装できるようになります。特に proto からの型…

Odinでオプションが有効(or 無効)の時だけメニューを表示する

Unity の Editor 拡張が簡単にできる有料アセット「Odin Inspector and Serializer」で、ある bool 型の変数値が true(or false) の時だけインスペクターに表示されるメニューの作成方法です。 以下のスクリプトをオブジェクトにアタッチします。 using Sire…

Twitterの表示回数を非表示にする

ここ最近で一番最悪の変更が来ましたね。その名も「表示回数(ViewCount)」と言うらしいです。 こんな指標に付き合ってると承認欲求で頭がおかしくなる or 気にして気軽に使えなくなるので自分の見える範囲はサクッと非表示にしておきましょう。 動作環境 Win…

【Unity】Vector3(構造体)に自分自身の値を変更する拡張メソッドを定義する

Unity の Vector3 (Vector2 など構造体)に自分自身を書き換える処理を追加する拡張メソッドの定義方法の紹介です。 前提として以下のように Vector3 に拡張メソッドを定義して値を変更しようとしても値は変わらない事を確認します。 public static class Vec…

【Unity】メモリの改ざんを防ぐ機能を実装する

アプリなどでメモリ上に保持してる値って外部ツールで割と簡単に読み取ったり変更されてしまうんですよね。変更したときにどのアドレスに保存されているみたいな位置を特定されると実行中に値を書き換えられてしまいます。 そこでこれらの行為を防止するため…

【C#】メモリにファイルの内容を展開せずにAESで暗号化する

以前にデータを AES 暗号化する方法を紹介しましたが、実装例が何らかのデータをアプリのメモリ上に byte 配列として全部に読み取った内容を展開してから AES 暗号化する方法でした。 この方法だと、例えば 1GB のファイルを暗号化しようとすると1GBぶん全て…

【Unity】StreamingAssetsからデータを読み取る

Unity の StreamingAssets に置いたファイルを読み取る実装例です。 Android と WebGL は特別な処理が必要だそうで UnityWebRequest を使ってデータを読み取るようです。それ以外のプラットフォーム(iOS, Windows, デバッグ中のエディタ上)では普通にファ…