渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ

C#

Dictionary.TryGetValueの書き方がシンプルになってた件

UnityのScripting Runtime Versionを.NET4xに切り替えてから、C#の記述が変わりました。 その中で細かいけど、ちょっとイイと思った部分を共有します。 Scripting Runtime Versionを.NET3.5の時の場合は、Dictionaryの書き方はこうでした。 Object result = …

Rider2019.1アップデートで待望のIL Viwerが実装されている

その昔、UnityをMonoDevelopで開発しているときには身近に存在していたIL Viwer。 Riderに移ってからはそれが無く、不便に感じていましたが、とうとうRider2019.1で実装されました。 ILとは ILとはC#をコンパイルする際に作られる中間言語です。ILを読むこと…

Unity SpriteRendererで表示した画像をドラッグして端から端までピッタリ表示する

結論 X座標ドラッグ可能距離 = 画像サイズ / PixelPerUnit - orthographicSize * (Screen.Width / Screen.Height) Y座標ドラッグ可能距離 = 画像サイズ / PixelPerUnit - orthographicSize で割り出せます。 ※平行投影カメラが前提 以下のコードをドラッグ処…

コルーチンの引数にはref、outは使用できない

タイトルの通り、コルーチンで少しハマったので共有です。 IEnumerator Hoge (ref int foo) { yield return null; foo = 1; } このようにIEnumeratorを返す関数にはrefやoutが使えず、以下のようなエラーが出力されます。 error CS1623: Iterators cannot ha…

C#からC++(DLL)に構造体を渡す その1

VisualC++で作成したDLLに対して、C#から構造体を渡して返してもらうということをやってみます。 まずは手始めに変数が値型のみの構造体からやってみます。 環境周りの話は以前の記事を参考にどうぞ。 www.shibuya24.info 今回作るもの public struct Struct…

C#からC++(DLL)に配列を渡す

しばらくこのC#からC++に渡すシリーズは続きます。 文字列、int型と来て、今回は配列を渡します。 ビルド環境については、シリーズ初回のこちらの記事をどうぞ。 www.shibuya24.info 今回配列をC#からC++に引き渡す上で重要になるのはマーシャリングです。 …

C#からC++(DLL)にintを渡す

VisualC++で作成したDLLをC#からintを渡すということをやります。 環境構築は前回記事を参考にどうぞ。 www.shibuya24.info C++側は値で受け取る C++側のコードから載せますが、前回文字列を渡す際はポインタで受け取っていましたが、C#からプリミティブ型を…

C#からC++(DLL)に文字列を渡す

C++でDLLファイルを作り、それをC#から関数を呼び、C++側に文字列を渡すということをやります。 環境 VisualStudioCommunity2017 v15.9.8 今回作るもの C++製のTestDll.dllというDLLファイルを作成し引数が文字列のTestメソッドを用意します。 C#側から文字…

C#でDirectX11 SlimDXでマウスのスクリーン座標を取得する

SlimDXはぶっちゃけ関係ないのですが、SlimDXを使用する上で、マウス座標を取得したくなるケースがあります。そんな時、DirectInputを使えばよいと勝手に思っていたのですが、あくまでマウスの移動量しか取得できませんでした。 調査の結果、Window.FormのAP…

C#でDirectX SlimDXが使えるようになるまでのちょとした道のり

PCが新しくなったので、SlimDXを使うまでの環境構築をメモっておきます。

Unity2018.3.0からGCを作動させないGarbageCollectorというAPIが追加されている

先日Unity2018.3.0が正式リリースされ、リリースノートを粛々読んだり、Unityブログを舐めている最中です。 気になった機能の一つとして、GCをコントロールするAPIが提供されたようなので検証しておきます。 GarbageCollectorクラスを使う UnityEngine.Scrip…

Unity動的にメッシュを生成するシリーズ

1.Unityで三角形を1つ描画、テクスチャまで貼る この辺りでやっているような三角形1つ描画するということをUnityでもやってみたというプリミティブな記事。 生のWebGLで三角形を描画するショートコード - 渋谷ほととぎす通信 C#でDirectX11 SlimDXで三角形を…

C#でDirectX11 四角形の描画

今まで三角形を描画して、頂点カラーやテクスチャを適用していましたが、そろそろそれらは卒業して四角形を描画します。四角形は2つの三角形を組み合わせるので、四角形を描画するというより、2枚の三角形を描画するということになります。

DirectX11をC#を書きながら覚えていく

SlimDXを使用し、DirectX11をUnityで馴染みのあるC#を通して学んだ記事のまとめリンクです。 目次 0. 環境構築編 SlimDXが使えるようになるまでの環境構築です。 1. ウィンドウ表示 DirectX11の表示先のウィンドウを表示させます 2. GPUを使用して描画する …

C#でDirectX11 UnityのTransform的な親子関係を実装してみる

Unity然り、FlashのActionScript3然り、表示オブジェクトの親子関係がデフォルト機能のように実装されていて、当たり前のように使ってきたのですが、一度理解してしまえば非常に簡単なのでしたが、自前で実装するとなると結構骨が折れました。 ということで…

C#でDirectX 軽い気持ちでSlimDXを使うとき用ライブラリSlimDXSketchを作りました

ここ最近SlimDXを触ってまして、以下の記事を書いてきました。 C#でDirectX11 SlimDXでウィンドウを表示させる - 渋谷ほととぎす通信 C#でDirectX11 SlimDXでGPUを使用して描画する - 渋谷ほととぎす通信 C#でDirectX11 SlimDXで三角形を描画する - 渋谷ほと…

C#でDirectX カリングをOFFにして両面描画してみる

C#でDirectX11 プロジェクション座標変換して三角形を表示させる - 渋谷ほととぎす通信の続きです 前回ビューポート座標系に三角形を表示させて、クルクル回転させました。 ただ、このままでは裏面がない状態でクルクル回ってしまうため、カリングを設定して…

C#でDirectX11 プロジェクション座標変換して三角形を表示させる

C#でDirectX11 三角形を回転アニメーションさせる - 渋谷ほととぎす通信の続きです。 ワールド座標にそのままポリゴンを表示させていましたが、今回はプロジェクション座標変換して、ビューポート座標に三角形を表示させてみます。 まずはシェーダを書き換え…

UnityからArduinoへのシリアル通信

Arduiono HelloWorldしてみる - 渋谷ほととぎす通信の続きです。 今回はArduinoを使ったシリアル通信をやってみようと思います。

C#でDirectX11 三角形を回転アニメーションさせる

C#でDirectX 頂点カラーを使って三角形を描画する - 渋谷ほととぎす通信の続きです。 やっとアニメーションに移ります。 頂点カラー反映済みの三角形をクルクル回してみようと思います。 今回は頂点シェーダ側で回転させてみます。

C#でDirectX11 頂点カラーを使って三角形を描画する

C#でDirectX FPSを管理する - 渋谷ほととぎす通信の続きです。 今回は頂点カラーを使って三角形を描画してみます。 今までと違うのは、頂点データに色情報が入ってくるということです。 ということで、以下前回記事のソースコードからの変更箇所です。 頂点…

C#でDirectX11 FPSを管理する

下記の記事での描画は、MessagePump.Runメソッドを使用しているため、ループ処理の間隔を制御できていませんでした。 SlimDXでDirectXを始めた ウィンドウを表示させる - 渋谷ほととぎす通信 SlimDX GPUを使用して描画する - 渋谷ほととぎす通信 C#でDirectX…

C#でDirectX11 SlimDXで三角形を描画する

WebGLでもやりましたが、DirectXで三角形を描画してみます。 描画するウィンドウの生成や、GPUを使用するまでの手順は、こちらにまとめました。 SlimDXでDirectXを始めた ウィンドウを表示させる - 渋谷ほととぎす通信 SlimDX GPUを使用して描画する - 渋谷…

C#でDirectX11 SlimDXでGPUを使用して描画する

SlimeDXを始めてみましたが、前回記事で空のウィンドウを出してみて、既にGPUを使っていると思っていましたが、そうではなく、GPUを使うためにはいろいろと設定が必要だったようで、その備忘録となります。 GPUを使用するためにはSlimDX.Direct3D11.Deviceク…

C#でDirectX11 SlimDXでウィンドウを表示させる

まず最初にコチラのサイトをほぼ写経させていただいております。 本当にありがとうございます。とても勉強になっております。 DirectXを始める経緯は割愛しますが、目指すレベルは「業務では一切使わないが、何となくコードが分かって全体感が理解できている…

リフレクションのBindingFlagsは一旦これだけ覚えておこう

UnityというかC#の話です。 Unityの隠蔽関数を調べたい時がよくあります。 そんな時リフレクションを使って関数や変数を調べることが多いと思います。 リフレクション使用時にBindingFlagsを使うわけですが結構種類があり、どれを使ってよいのか忘れてしまう…