より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

C#

KeyDownイベントでSpaceキーを認識しない。デバッグしたらProcessKeyと認識されてた。

C#

あれ、Space押しているのに、ListBoxのKeyDownイベントが反応していない。 デバッグすると、なんとProcessKeyとして認識されているではありませんか。 何、ProcessKeyって。MSDNみても、値229のProcessKeyとしか書いてません。 全角/半角切り替えボタンを押…

Xamarin.Forms recommends TargetPlatformMinVersion >= 10.0.14393.0 ? Xamarin.Formsのアップデートが必要になった

C#

ビルドしたところ、以下のような警告が。その影響でビルドエラーになってしまいました。 警告 Xamarin.Forms recommends TargetPlatformMinVersion >= 10.0.14393.0 (current project is -1) C:\Users\rim.nuget\packages\xamarin.forms\4.4.0.991265\build\…

読書感想「ゲームを作りながら楽しく学べるC#テスト駆動開発」

C#

C#のテスト駆動開発は我流でしたが、本書はテスト駆動開発がじっくり本格的に学べる本だなと感じました。 最初はUWPアプリの開発から始まり、本格的にテスト駆動開発していくのは4章のシューティングゲームからになります。 テスト駆動開発しているので、途…

Visual Studio 2019のリリース間隔が週一回ってことも!?

C#

Visual Studio 2019を起動すると え? またぁ? と思うことがあります。 それが、最新版のVisual Studioの通知です。 そういえば、どれくらいの頻度でリリースされてるんだろう? と、ふと調べて見ることにしました。以下に簡潔に書いてあります。 docs.micr…

ペイロードに含まれている複数のファイルで同じターゲット パス 'Properties\Default.rd.xml' が指定されていますが、サイズが異なります。

C#

UWPでアプリを開発しているのですが、テストプロジェクトをビルド実行したら以下のようなビルドエラーが出ました。 ペイロードに含まれている複数のファイルで同じターゲット パス 'Properties\Default.rd.xml' が指定されていますが、サイズが異なります。 …

Invalid Service Error (error: 0xe8000022). You can still launch the application manually by tapping on it.

C#

Xamarinをデバッグ実行しようとすると、以下のようなエラーが出ました。 XXX.app' on the device 'rimPad': Failed to launch the application 'XXX' on the device 'XXX': Invalid Service Error (error: 0xe8000022). You can still launch the applicatio…

Directory.CreateDirectoryでPathTooExceptionのはずが、DirectoryNotFoundExceptionが発生する

C#

Windowsのファイルパスは標準では260文字未満、ディレクトリ名は248文字未満となっているため、それをオーバーすると以下のようなエラーが発生します。 System.IO.PathTooLongException: 指定されたパス、ファイル名、またはその両方が長すぎます。完全限定…

読書感想「タワーディフェンスのつくりかた Unity5.0編」

C#

github.com 以前に読んだ2Dゲーム制作入門と比べてしまうと、1ゲームしか作らないので物足りない印象です。 ただ、比べてしまうとそうなるわけで、客観的にUnityの学習本としてみれば相変わらずいい本ですね。

UnityのTextの FontSizeが大きくして文字が消えたら Rect Transformを調整する

C#

Unityで、もっとフォントサイズを大きくしたいなと大きくしてました。 24ではこれくらい 30にすると、あれっ、表示されなくなった 大きくしていたら、文字が消えてしまいました。 原因は、Rect Transform(Height)に収まらなくなったからです。これを調整する…

UnityのButtonのOn Clickに追加した関数が表示されない

C#

UnityのButtonのOn Clickに指定したクラスの関数を指定する。 基本操作なのですが、関数が出てこないことに悩まされてました。 GameManagerクラスの関数が出てこない! もちろん、public関数にはしてます。 Assetタブではなく、Sceneタブに切り替えて選ぶこ…

読書感想「uGUIではじめるUnity UIデザインの教科書」

C#

一通りコンポーネントの説明を行っている本です。 手を動かすというより、予備知識として読む位置付けですね。

読書感想「Unity4.6/5.0でつくる2Dゲーム制作入門」

C#

github.com 実践的なフォルダ構成 どうしてもUnity4.6時点の本ですので、現在のUnity2019で開発するには最新版に合わせて変えないとならない点も出てきます。 シーンの切り替えにはSceneManager.LoadSceneを使うといった対応が必要です。 Particleに使う、ma…

読書感想「Unity2019入門」

C#

www.sbcr.jp 2Dと3Dのどちらも扱っています。 Unityの基本的な操作は経験できるといったところでしょうか。 2Dは公式サイトでダウンロードできる画像をつかって、3DについてはAsset Storeからダウンロードして、開発ということになっています。 それだけ素材…

UnityでいきなりAsset Storeが最大化されて戻す方法

C#

Unityを操作していたら、いきなりAssetStoreが画面全体になってしまいました。 これじゃ、肝心のシーンを編集できないー!と焦りました。 メニューバーから、Window - Layout でDefaultなどをクリックしたら戻りました。 Window - Layout - Default

Directory.Deleteメソッドについて

C#

docs.microsoft.com Directory.Delete(String) では、サブディレクトリやファイルがある場合に削除ができません。 再帰削除のメソッドのためのDirectory.Delete(String.Boolean)を指定すればOKです。 実は、これがあるのを知らなかったので、自分で実装しよ…

PolylineにNaNを含むと描画されない

C#

WPFで線のオブジェクトであるPolyLineは複数の点を指定します。 この複数点の中にNaNを含んだ場合、その線は描画されません。しかも、エラーにもなりません。 MainWindow.xaml

ジグザグ線を描画するには

C#

ジグザグ線を描画するにはどうすればいいか? 結論に入る前に以下の画像を見てもらうとイメージしやすいです。 青がジグザグ線。赤が補線です。 始点と終点を等間隔の点を取る 点同士と正三角形となる点を中間地点に入れて折れ線としながら結んでいく。 ジグ…

エッセンシャルWPFは今読んでもWPFの入門書になる本

C#

職場の先輩から借りた本です。 前職の仲間が持っていたのは見かけたことがあり、立ち読みしたこともあるのですが、まともにこの本と向き合ったことはありません。 しかし、一章を読んだだけで気づかされました。 WPFを学ぶなら一度は読んでおくべき本 という…

自分のよく使うdotnetコマンドまとめ

C#

dotnetコマンドを使うために、Visual Studioからは、ツール - コマンドライン - 開発者コマンドプロンプト を起動します。 プロジェクトの作成は、以下のように行います。 dotnet new wpf -n Chapter6_24 プロジェクトのソリューションへの追加は、以下のよ…

LinqのOrderByでIComparerを使いたい場合

C#

C#のLinqのOrderBy関数は、配列を並び替えた結果を返す関数です。 var arrange = people.OrderBy(p => p.No); といったようにソートするキーを渡すのが主だった使い方です。 しかし、OrderBy関数にはIComparerを実装したクラスを渡すことができます。 クラス…

int.MaxValue * 2 は? a *= 2; というコードでアプリが落ちるお話

C#

会社でシステムテストをしていたところ、チームのメンバーで 項目Aに入力出来る最大の数値を入れて、(私が開発した)機能Bを使うと落ちる という報告がありました。 嘘ー、そんなことあるの!?と。 私、前職では参照用のアプリケーションだったので、この…

ストップウォッチで正確に計測するということ

C#

仕事で使っているシステムには時間を計測する機能があるのですが、ふと以下のようなゲームを思い出しました。 www.itmedia.co.jp 昔、ギリギリ10秒に近づけるゲームってやりましたね。G-SHOCKとか使ってやってました。 後述しますがやってみると5秒の方がゲ…

起動引数の間のスペース多い場合はどうなる?

C#

プログラムを呼び出す時に起動引数を渡して実行します。 起動引数はスペース区切りで複数の引数を渡すことも可能です。 起動引数の間のスペースが1つではなく、スペースが2つ以上だったらどうなる? ふと、疑問が浮かびました。 以下のような起動引数だった…

WPFのXAMLを指定する時には、DesignInstanceを設定する

C#

WPFのXAMLでは、ViewModelのプロパティと Viewの紐付けを行うことになります。 課題なのは、C#という静的型付け言語にも関わらず、動的な値の指定になるということです。 なぜか、ViewModelの値が反映されない! 気付いたら、Bindingしているプロパティの名…

WPFのホットリロード

C#

WPFのサンプルコードを動かしていたのですが、Visual Studio 2019だと楽ですね。 知っていましたが、まだ使ってなかったホットリロードの便利さを体験しました。 docs.microsoft.com ホットリロードというのは、どういうものかというと動かしてもらった方が…

XamarinでMacに接続できなくなったXamarin.Messaging.Broker

C#

XamarinからMacに接続できなくなったことがあったのでメモ。 Xamarin.Messaging.Brokerのアプリの許可が関係しています。 Visual Studioのアップデートに伴い、このアプリも定期的にアップデートされているので、その都度、通信の時に許可を確認されるので、…

regionはネストできる

C#

#regionの私の使い方としては、通常は見る必要のないコードを見なくていいようにするための手段です。 一番多いのがusingの使用です。 #region using System.Collections.ObjectModel; using System.Linq; using System.Windows; #endregion そうしておけば…

throw exとthrowは全くの別物

C#

throw exだけど、throwに出来るの知ってる 前職の同僚に言われたことです。 private static void test() { try { child1(); } catch(Exception ex) { Console.WriteLine("例外発生:test"); throw; } } 例外を捕捉して、throwするとき、throw; とだけ書いても…

「Could not launch Xamarin Launcher」

C#

Visual Studioを更新して、XamarinアプリをiOS端末にデプロイしようとしたところ Could not launch Xamarin Launcher Could not find the executable 'mlaunch.exe' Fullpath: /Library/Frameworks/Xamarin.iOS.framework/Versions/13.18.1.31/lib/mlaunch/m…

C#でstring + nullって、アプリは落ちない?

C#

仕事で、こんなコードを見かけました private static void test(string a = null) { Console.WriteLine("argument = " + a); } メソッドを呼び出す時引数を省略した場合、引数はnullになります。 すると、例外になるから、ヤバくない? って。 ですが、この…