2015年9月7日月曜日

[C#] 構造体におけるconstメンバ

他人様のコードを読んで構造体におけるconstメンバの使い方が勉強になったのでメモ


//こういった構造体の宣言をして
struct hoge{
    public const int size = 8;
    public int aaa;
    public int bbb;
}

//変数の宣言をして
hoge abc;

//構造体のサイズを出力する(二通り)
Debug.Log( Marshal.SizeOf(abc) );    //8
Debug.Log( hoge.size );    //8



結果から、constメンバは構造体の実体には含まれない。
"構造体 const メンバ"でググっても解説の類が見つからないのだけど
物凄く基本的な使い方なのだろうか。

Marshal.SizeOfメソッドを使わない分軽いだろうし、
size変数といった形で使うのはとてもわかりやすく使いやすいように思えた。

この場合、abc.sizeとできたほうがより直観的だとは思うけど、
それだとその分構造体の容量増えちゃうしね。

2015年7月29日水曜日

[Visual Studio] .shader, .compute, .cgincのシンタックスハイライト/カラーリング

ネタ元
http://forum.unity3d.com/threads/tutorial-how-to-use-nshader-with-unity-shaders.108995/

〇 Visual Studio 2013
S-edさんが添付している $NShader.zip に格納されている
NShader.vsix をダブルクリックしてインストール。

〇 Visual Studio 2015
samizzoさんがリンクを張っている NShader_2015.zip に格納されている
NShader.vsix をダブルクリックしてインストール。
※ 自分は2015は入れてないので試してないのですが、
Enterprise版で動かない、Community版では動いたというコメントが返ってきているみたいです。



NShader は HLSL, GLSL, Cg で書かれたファイルをハイライト/カラーリングしてくれるVisual Studio 2008/2010 の拡張みたい。

NShader
http://nshader.codeplex.com/

S-edさん、samizzo さんのはNShaderをさらに拡張させているみたいですね。


……よくわからず書いてるから歯切れが悪い!

2015年7月27日月曜日

C# 多次元配列の初期化,ゼロクリア速度の比較

多次元配列を初期化(ゼロクリア)するのにかかる処理時間を計測した。
厳密にはUnityの話ではないのだろうけど、Unity上で行った。