2018-01-01から1年間の記事一覧
前回の記事「C#: 組み込みの数値型を扱いたい generics の 型と IConvertible の肝っぽい事、それと object 型を暗躍させる必要性のメモ」で C# の generics で数値計算を実装すると結局 object の暗躍が必要なので実行時コストが気になるよ、でもまあ実行コ…
// 前提; この記事の Fail とか AreEqual とかはこいつの↓ using static Microsoft.VisualStudio.TestTools.UnitTesting.Assert; // 任意の IConvertible を別の IConvertible に数値を保持して変換したい場合 public static B C<A, B>( A a ) where A : IConverti</a,>…
// Example-0; 突然の翻訳死が訪れるよ var xs = from v in Enumerable.Range( 0, 4 ) select w => w; こういう事をしたいけど、これじゃ C# コンパイラーちゃんが死んじゃう error CS1942: An expression type in select' clause is incorrect. Type infere…
// これはコンパイルできない(´・ω・`) // object -> T static public T As<T>( object o ) { return o as T; } // as T できるためには T に class 制約が必要。これはコンパイルできるし、期待動作するかもしれない。 // object(class=nullれる何か) -> T st</t>…
// 前提、 C#-7.0 using System.Windows.Controls; var c = new Control(); if ( c is Label l ) Console.WriteLine( $"Label.Content={l.Content}" ); if ( c is TextBlock t ) // <--ここでコンパイルエラーが生じてくれる。 Console.WriteLine( $"TextBlo…
Visual Studio の C# プロジェクトでも Error も Warning も1件も見逃さない綺麗なビルドを心掛けていますが、 Messages は見落としていました。何件か来ている。 まず、一番上を見る。 IDE0018: Variable declaration can be inlined とやら。 IDE0018 "Var…
仕事で扱ってもいるので国土地理院の地理院地図のタイル画像データはよく使わせて頂いています。います、のですが、これがたまにメタデータだったりピクセルフォーマットだったりが奇妙な画像ファイルに遭遇する事がたびたびあります 今回は地理院地図のJPEG…
usagi.cs ; わたしが欲しいと思った適当な機能たち for C# nuget -> NuGet Gallery | usagi 0.0.0 repos -> GitHub - usagi/usagi.cs: わたしが欲しいと思った適当な機能たち for C# 数年ぶりに C# の実装を書いていて「きぶん」と「おもいつき」で書いてみ…
UE4 プロジェクト内のアセット化された「なにか」を C++ コードの ctor で拾いたい場合には以下のようにする、するのだが…: #include "Runtime/CoreUObject/Public/UObject/ConstructorHelpers.h" // どこかの UObject 系の ctor でプロジェクト内のアセット…
遠いむかしの記憶、 C# というか Visual Studio のプロジェクト管理システムにはバージョン番号の一部を自動採番する便利な機能があった、ような気がした。実際に執筆時点で現行製品の VS2017 で作った C# のプロジェクトの AssemblyInfo.cs にも次のコメン…
例えば同じ要素軍を選択肢として提示する複数のコンボボックスを配置したいとしよう。以下のコード例は何れも <Window> の内部に定義している。 <ComboBox Name="CB1"> <ComboBoxItem Content="選択肢1"/> <ComboBoxItem Content="選択肢2"/> <ComboBoxItem Content="選択肢3"/> </ComboBox> <ComboBox Name="CB2"> <ComboBoxItem Content="選択肢1"/> </comboboxitem></combobox></window>
C#er には標準ライブラリーに準じてお馴染みらしい JSON を扱うライブラリー Newtonsoft.Json があるようだ。しかし、こういってはなんだがろくな解説が無い(個人の感想です。)ので私が使うにあたり最低限調査したメモを残す。 使用する主な名前空間は2つ…
Note: 今回はわりとエッセイ的ななかみです。 もう数年程度は必要の無かったので Windows 10 は(昔に比べれば)安定動作してくれてその点では余計な手間が少なくなって嬉しいな、と思っていた。 だが、今日は スタートボタン が死んだ タスクバーの他の機能…
XAML で UI を作っていたんだ。 <CheckBox IsChecked="{Binding Awabi}"/> <CheckBox IsEnabled="{Binding !Awabi}"/> 先日の 「.net/XAML/C#: XAML のプロパティーは Visibility 型だけど Boolean の DataContext に束縛したい場合の最適解、あるいは BooleanToVisibilityConverter について」 の例から IValueConverter を実装した Inverse</checkbox></checkbox>…
次のコードあるいは相当のBPは期待とは異なる動作を招くかもしれない。 UGameplayStatics::OpenLevel ( GetWorld() , TEXT( "Sushi" ) , true , TEXT( "#Tako" ) ); 『このようなレベルの開き方をした場合、開かれたレベルでは AGameMode::OptionsString が …
katze_7514 さんの UEDirectInputPadPlugin を Fork して でにゃんにゃんしました。 Fork 先: usagi/UEDirectInputPadPlugin Fork 元: katze7514/UEDirectInputPadPlugin UE4 には 4.15 以降は標準で Windows RawInput Plugin が入りましたが、 軸の入力値が…
「Boolean なプロパティー Hoge が DataContext に束縛された Window のにある何かのコントロール(下の例では Button )の Visibility プロパティーを XAML だけで簡単に Window の DataContext の Hoge に束縛したい!」と思ったんだ。 <Window ... 略 ...> ... 略 ... <Button Visibility="{Binding 😂 Hoge ? Visible : Hidden したいんだけど!!😂}"/> ... </button></window>…
↓こういうのが居たとする。 // UObject 派生だがシングルトンファクトリーで生成されるオブジェクトがあったとする UA* UA::GetInstance() { if ( ! my_static_instance ) my_static_instance = NewObject< UA >(); return my_static_instance; } このような…
残念な事に別プロセスの起動時に与えられたコマンドライン情報を System.Diagnostics.Process の StartInfo プロパティーの FileName や Arguments から取得はできない。それらはプロセスの起動を自身のプロセスから行う際に自身が設定した場合にのみ意味が…
諸事情により UE4 でゲームではない何かを開発したりユカイなマルチプロセスのゲームを作ったりすると プロセスID を取得したくなるかもしれない。わたしはなった。 UE4 にはそんな時に便利そうな FGenericPlatform::GetCurrentProcessId がある プロセスID…
Visual Studio で C# プロジェクトをにゃんにゃんしている土曜日だった。JSON-RPC-2.0 のクライアントを実装する必要があったので NuGet を見ると導入が簡単そうなライブラリーが幾つも見つかる。 NuGet Gallery | Packages matching jsonrpc このへんが使う…
// Process using System.Diagnostics; // C# アプリから UE4 製のアプリ(に限らず)を起動してプロセスをハンドルする var p = Process.Start( "your-executable-path.exe" ); // 既に動作している UE4 製のアプリ(に限らず)を探してプロセスをハンドル…
Note: 今回は技術的内容はたぶん無いよう・w・ たぶんただのエッセイだよう・w・ Visual Studio で C# を書くのはお気持ち的にはたぶん10年ぶりくらい(実際はそんなに長くないよ)。 C# でアプリを書くのは5年ちょっと振りくらい(たぶんほんと)。 C# や…
「UE4 にはガベージコレクションがある。しかし特に C++er は正しい実装を過剰に気に掛ける必要がある。」 UE4Editor から GUI でも設定できる GameSingletonClass, GameInstance を使う場合は気にする必要は無い。今回はその仕組みを使わない場合の話。 UOb…
この頃 DDDA ( STEAM 版 ) を遊んでいます。ゲームは楽しめているのですが、アプリケーションとしての動作に幾つか悲しみの挙動があり気にしながらプレイしていました。 マルチモニター環境でフルスクリーンを ON にコンフィグすると Left-Top のモニターに…
USaveData 派生型のセーブデータを作り UGameplayStatics::SaveGameToSlot, UGameplayStatics::LoadGameFromSlot を用いてセーブとロードを実装する手法を用いるとそれ自体の実装労力は節約できて嬉しい。しかし、これらの API は UE4 プロジェクトの開発時…
本編は以前書いた 「UE4/C++ Tick が来ない!そんなときのトラブルシュート備忘録」 です。今回はそのおまけ。 行動パターンで書くと「ああ、なんだ」と気づく事も多いのですが… Tick が来ない!(気づき) PrimaryActorTick.bCanEverTick = true していなか…
次のようなごく簡単な FHttpModule の実装例を実行するとゲームまたは UE4Editor ごとプロセスが落ちてしまう。 TSharedRef< IHttpRequest > r = FHttpModule::Get().CreateRequest(); r->OnProcessRequestComplete().BindUObject( this, &UMyHttpTask::Hand…
1つ前の記事 「UE4/C++: 実行時に取得したドキュメントが SJIS だった時に ICU で UTF8 にしたり UTF16 で TCHAR にするメモ」 でUE4のユーザープロジェクトレベルで ICU ライブラリーを取り込んで文字コードを操作する実装のメモを書きました。この記事の執…
実行時にどこかのレガシー文書を HTTP で拾ってきて表示しようとしたら SJIS だった、 EUC-JP だった。あるいはどこか別の文化圏の文字コードだった。 UE4 の文字列処理系は内部表現の UTF16 または変換マクロが定義された UTF8 か ANSI じゃないと扱いが困…