Niwatori’s diary

鶏がプログラミングをする時に考えてること。

C#:Unityってやっぱり楽だけど難しい!

 

Unityが楽だからって、甘えられるなんてことはないんだよね。

 

C#の書き方も大分慣れてきた。

しかし、普段C++使ってるとC#の書きやすさはとろけそうなくらい楽。

一番は、メソッドやクラスの変更時にヘッダとソースを行き来したりしなくていいのがすごく楽。

 

ただ、当然といえば当然だけど、一ファイルに多量のコードが混在するせいでとても見辛くなりやすい。

まぁここら辺はクラスの分け方とか書き方とかプログラマーの方で対処できるし、見辛くなってしまうのはプログラマーの方が90%悪いと思う。

 

一つ、いつC#を使っても思うのは、グローバル変数を作れないのがどうもなぁ。

そもそもグローバル変数なんて作らないに越したことはないし、無いのが良いコードだと理解はしているけど、逆に無いとコードが汚くなるケースはごくたまにある。

特にUnity上だと、Unity的な制約が結構多いのでそこにC#流を厳守せよ、と言われると結構大変。

 

もちろん、グローバル変数が無いとどうしてもダメっていうケースは多くはないし、回避できないケースはそうそうない。

 

結局何が言いたいかというと、C#を使ってると、C++よりもクラス単位程度の粒度の小さい設計をきちんと考えるようになるなーっていう。

ちゃんと考えないと、汚いし効率悪いし、良いことないので、半ば強制的に考えさせられているとも言える。

 

これにUnityが絡むと、機能はいっぱいあるから良いものの、本来のC#ではない常に変化球的な書き方をしているみたいで若干の辛さも感じるんだこれが。

 

元々XNA使ってゲーム作ってたので、なおさら変なC#っていうイメージが強くなっているんだと思われる。

 

まぁ、なんやかんや言いつつ、C#様にもUnityさんにも文句言えるほどの技術レベルを持っていないので従うしかないのだ。

 

ちなみに、今回はグローバル変数をつかえないのがやだーって記事を書いたけど、そういう割にはグローバル変数を使わないアプローチで実装してみると、案外収まりのいいコードになるので、言うほど辛さを感じてないっていう。

 

すげーなーC#。面白い