だらだら〜自由自在〜

インディーゲーム制作チーム GAME GABURI でプログラム担当してます

C# on VisualStudio2008Express

久々に定時で仕事帰れた〜。明日も定時帰宅の可能性高し。
なんか次の仕事が誰でも出来そうな仕事が回ってきそうな、というか回ってくるんだけど。これって純粋に他に適役がいないからなのか、それとも……なんかあんまり興味がない部分のプログラムだからやる気でない。給料もらうためと割り切る割り切る。

オートフォーマット

をして欲しくないときにされるのがイライラする。

if(...) hoge;
else//ここでTab

↑の時にTab押すと

if(...) hoge;
else
{
}

ってなってしまう。

if(...) hoge;
else    fuga;

という感じで2行で書きたいんだが…オプション探してみてもオートフォーマットを切るのが見当たらなかった…これってどうにもならないんでしょうか??

まだある。カッコの一致で強調表示されるのも要らない。でもこの機能自体を切るところが見当たらない。こういうのってExpressだから切ったり出来ないんだろうか?だとしたら変なところで機能制限するなぁ。地味にイライラするけど。

C#コードの書き方

C#の洗練された書き方ってどんなんだろう?あくまで見た目(視認性とか)で。
///で始まるAPIコメントが勝手にsummaryとかparamとか挿入してくれて楽で使ってたんだけど、これを無節操に全てにコメントに対してやってたらどんどん行数が増えてしまう…C#には(C/C++と比べて)ヘッダというものが無いからメンバ変数とかもメソッドと同じ場所に書くことになる。そしてそれらにもAPIコメントつけたりするとコメントの行数がえらいことにナル。
このあたりC#使いの先輩方は結局どういう感じに収まったのだろうか。
これはコメントだけのことじゃなくて、機能的で標準的な書き方っていうのを表面的にでもいいからしらなくちゃなぁーと思ったワケです。

構造体

ふむ。C#の構造体がどんなものか初めて知った。C++みたいにデフォルトのアクセスレベルが違うだけのモノじゃないんだなー。@ITの記事によると、クラスは参照型であるのに対して構造体は値型っていうのが大きな違いらしい。値型だとすると構造体のデータ量は十分小さくないと不利になりそう。でも参照型も結構アクセスが遅いそうな。
ちゃんと調べたわけでも無いし、今のところはClass使っとこう。大は小を兼ねるという認識で。

SendMessage

を使って、敵に弾当たる>敵が弾にOnHitをSendMessage>弾が敵にOnGiveDamageをSendMessage>敵ダメージ処理>敵死亡
を行った。SendMessageって遅そうなイメージがあるが、これと直接Scriptのメソッド呼ぶのだったら、やっぱり後者主体の方がいいんだろうか。Scriptのメソッド呼ぶためにはGetComponentでScriptを取得する必要があるからアレだなー。でも↑のフローみたいにSendMessageをやり合ってるのは微妙なんだろうな、だったら最初のSendMessageの引数にthisを入れてやったら良いわけで。システムクラスとか仲介させるのであればSendMessageとか使わなそうだけど、どうなんだろう。SendMessageってどういうつもりで用意されてるんだ?