Unity-DOTSで作る2D弾幕シューティングの例 - ③敵/弾/銃のデータ構造について
敵/弾/銃のデータ構造についてという感じで弾を撃つわけですが、弾を撃つにあたって必要なIComponentDataの定義をしていきます。基本的なルールとして定めているのは下記のようなものです。敵は銃を持つ敵は複数の銃を持つ場合がある銃は敵を親とし、親に追従して動く銃は座標のオフセット値を持つ(敵の絵に合わせて射出点を変えたい)銃は弾を撃つこれを下記のようなIComponentDataで表現しています...
View ArticleAntlr4をC#から使ってみる #02 javaでのツリー構造の出力
AntlrはもともとJavaのツールなので、C#で使うにしてもJavaを使ったほうが良い場合もある。ツリー構造を出力するのはその1例。Javaでのツリー構造の出力方法AntlrのサイトのQuick StartとSamplesの通り。例準備Quick Startに従い、jarファイルダウンロードと、antlr4.batとgrun.bat...
View ArticleUnity-DOTSで作る2D弾幕シューティングの例 - ④銃を操作するComponentSystem
銃を操作するComponentSystemこのゲームは可能な限りパフォーマンスの出る弾幕シューティングにしたかったので、...
View ArticleC#で設定ファイル書き出しを秒で片づける
秒で片づける以下2つのクラスをコピペします。コメント書いているので長く見えますが、コード量はわずかです。使い方は後ろで記述。publicclassConfig{/// <summary>/// ルートエントリ///...
View ArticleAssertionで副作用を起こすな
TL;DRboolで実行結果がわかるような、副作用を起こすメソッドmethodThatWontFail()があるとする。これが失敗して欲しくない時にUnityのAssertionを発生させるという目的で、Assert.IsTrue(methodThatWontFail());とやってはいけない。ビルドした時に「基本的にAssertは丸ごと取り除かれる」という仕様のおかげでそのメソッドを実行するという...
View ArticleAntlr4をC#から使ってみる #03 Listenerでの計算機作成のための試行錯誤
前回は例が簡単すぎてListenerやVisitorの具体的な使い方がぴんと来なかったので、今回はListenerで計算機を作るための試行錯誤をしてみる。文法の定義Calculator.g4grammar Calculator; PLUS : '+'; MINUS: '-'; MULTI: '*'; DIV : '/'; NUMBER : [0-9]+; WHITESPACE : [...
View ArticleUbuntu上でSQL Serverを使用してC#アプリを作成する
はじめにこの記事では、Microsoft 社が公開している Build an app using SQL Serverの内容に従い、SQL Server を使用した C# アプリを作成します。環境OS: Ubuntu 18.04 LTSSQL Server: SQL Server 2019.NET Core: 3.1 LTSなお、本記事執筆時点において、WSL(Windows Subsystem...
View ArticleC#製 micro O/RマッパーNPocoの紹介 - 概要編
C# で使える O/RマッパーのNPocoに関する日本語の記事が見当たらなかったので書いてみます。NPocoって何?C#製のO/Rマッパーで、EntityFrameworkとDapperの中間くらいの立ち位置のO/Rマッパーです。拡張するポイントもいくつか用意されいます。リポジトリ 2020年06月時点で最終リリースが10か月前と少し不安ですが issueの回答などは行われています。今回はNPoco...
View Article[C#] .ConfigureAwait(false)のありなしで、使うスレッド/戻り先スレッドがどう変わるか実験
もくじ→https://qiita.com/tera1707/items/4fda73d86eded283ec4fやりたいことある自作ライブラリのメソッド中で、Taskをawaitをしているところがあったので、当然そのメソッドを.Wait()したらデッドロックするのだろうな、と思っていたら、いざやってみるとデッドロックしなかった。「どんなTaskを.Wait()したらデッドロックするのか」を、MS公...
View ArticleUnity-DOTSで作る2D弾幕シューティングの例 - ⑤自作スプライト描画システムについて
Unity-DOTSで作る2D弾幕シューティングの例の五回目です。自作描画システムについて描画に関してですが、私がこのゲームを作り始めた時点ではEntity Component Systemに関連するパッケージの中に従来のSpriteRendererに相当するものが存在しなかったため、絵を表示する機能はGraphics関数を自前で叩く実装をしています。...
View Article【Unity/C#】コルーチンについて
本記事の概要本記事は自分がコルーチンについてでの程度理解しているかの確認もかねて書いておりますので間違っていることがあります、もし間違いを見つけた場合コメントなどをください、修正します。目次コルーチンとは?どうやって使うの?サンプルコードどうやって呼び出すの?yieldって?yield一覧コルーチン(Coroutine)とは?コルーチンとは処理を中断したり、何秒後に処理を再開したり、中断したところか...
View ArticleXAMLにシングルトンをバインディング
下記のようなシングルトンがあった場合シングルトンnamespacetest{publicclassSetting{staticSettinginstance=newSetting();staticpublicSettingI{get{returninstance;}}publicdoubleFont_Size{get;set;}}}下記のようにバインディングします。xaml<UserContr...
View ArticleANTLR4をC#から使ってみる #04 Listenerでの計算機の完成
前回の記事までで、下記がわかった。C#でANTLR4を利用するためのVisual Studioの設定方法と、プロジェクトを作った後の設定方法ListenerのではExit***の挙動Exit***リスナーとスタックを使うとListenerで計算機を作れること実装Listenerクラスへのスタックの作り込みStack<float> stack = new...
View ArticleSLES上でSQL Serverを使用してC#アプリを作成する
はじめにこの記事では、Microsoft 社が公開している Build an app using SQL Serverの内容に従い、SQL Server を使用した C# アプリを作成します。環境 OS: SUSE Enterprise Linux Server v12 SP4SQL Server: SQL Server 2019.NET Core: 3.1...
View Article【Unity/C#】コルーチンのサンプル
概要本記事では【Unity/C#】コルーチンについてでコルーチンについての基本的なことを学んだのでコルーチンを用いた実用例をいくつかご紹介したいと思います。目次x秒後に処理x秒ごとにfor文を動かす1フレーム後に処理1フレームごとにfor文を動かすFadeFadeInFadeOutx秒後に処理サンプルコードIEnumeratorDelay(float_delayTime){//ここで指定した秒数止め...
View Articleクォータニオン(四元数)を使って自前でLookAtを実装したらダイナミックになった話
先日、趣味のプログラムで「任意の位置に対して、常に自分の方を見てくれるカメラ」を作るためにatan2などを用いて実装しました。経度方向・緯度方向の2方向に分けてオイラー角を出したのですが、2ステップ必要緯度が90度のときに例外処理が必要(経度を定義できないので)...
View ArticleC# - DLLImportを使わずDLLを動的に呼び出す
一般的にDLLを呼び出す場合はDLLImportを使用しますが、実行時にDLLが無いと起動出来なくなってしまうので、プラグイン的な使い方をする場合は、DLLを動的に呼び出したい場合があります。DLLを動的に呼び出すには、LoadLibrary+GetProcAddressで関数ポインタを取得し、定義済みのDelegateに変換して呼び出す昔ながらの方法もありますが、今回紹介する方法は、TypeBui...
View ArticleRHEL上でSQL Serverを使用してC#アプリを作成する
はじめにこの記事では、Microsoft 社が公開している Build an app using SQL Serverの内容に従い、SQL Server を使用した C# アプリを作成します。環境OS: SQL Server: SQL Server 2019.NET Core: 3.1 LTS環境のセットアップウェブ上では、ホスト OS に SQL Server 2017...
View Article