【C#】intやfloatは本名じゃない! C#のエイリアスの話【ゲーム開発】

【C#】intやfloatは本名じゃない! C#のエイリアスの話【ゲーム開発】

C#だと整数の型としてintを使い、浮動小数点数の方としてfloatを使っています。でも実はこれ、本名じゃないってご存知でしたか?

C#でのintやfloatといった呼び方は「エイリアス(別名)」で、実体は別の名前だったりします。実はC#は「.NET Framework」で実行されるので、intは.NET FrameworkのSystem.Int32、floatは.NET FrameworkのSystem.Singleのことを指しています。

このページでは単純にエイリアスの存在を知らせるというよりは、C#に加えて.NET Frameworkの情報も使うことで、より理解が深まっていくよーという話を。

 

 

UnityではC#を使う

Unityでスクリプトを書く際にはプログラミング言語のC#を使います。C#はオブジェクト指向のプログラミング言語で、JavaやC++の経験者なら入りやすいかもしれません。私もJavaに先に触れていて、割とスムーズに慣れていくことができました。

プログラミング初心者でもC#は比較的簡単に学びやすい言語なので最初に学ぶにはおすすめです。最初から難しい機能を使う必要はなくて、基本的な部分を使っていくだけでもゲームを作れるので安心です。あ、型パラメータ(GetComponent<Rigidbody>みたいなの)だけは最初からガンガン使うことになるのでここだけ押さえておけばOKです。

C#に関しては別の記事でも触れているのでよかったらこちらも。

 

.NET Frameworkとは

普段からC#を使い慣れている人なら「.NET Framework」という言葉に聞き覚えがあるかもしれません。C#で書いたプログラムは.NET Frameworkで実行されます。

.NET Frameworkはフレームワークの一種で、フレームワークとはざっくりいうとプログラムの実行に必要な機能や処理が予め含まれているもののこと。メモリ管理や他のシステムサービスなどを担ってくれる環境を用意しておくことで、私たちはC#で自分の作りたいアプリケーションに集中できるのです。

.NET Frameworkを開発したのはMicrosoft社で、C#もMicrosoft社が開発した言語です。相性抜群ですね。

 

.NET Frameworkの型名とC#の型名

C#では整数を扱いたいときにはint型、浮動小数点数を扱いたいときにはfloat型を使います。このint型やfloat型ですが、実は本名ではなくて別名(エイリアス)だったりします。

C#でint型と呼んでいるものは、.NET FrameworkだとSystem.Int32と呼ばれていて、32ビットの符号付き整数を表現しています。毎回型として「System.Int32」を指定するのも長いですから、「int」の3文字で型を宣言できるのは便利です。

また、C#でfloat型と呼んでいるものは.NET FrameworkだとSystem.Singleと呼ばれていて、単精度の浮動小数点数を表現しています。

普段触れている型の名前が別の名前で呼ばれているとちょっとびっくりしますね。最初はC#の型と.NET型で呼び方が違うことに戸惑いましたが、お互いの呼び方を対応付けることで理解が広がった気がします。

ちなみに他の型について.NET FrameworkとC#との名前の対応を確認する場合はmsdnのページをご覧ください。例えば以下のリンクは整数型の対応が記載されています。

 

ゲームを実行した際になにかエラーがあった場合にはスタックトレースが出力されますが、この中ではたまに.NET Frameworkの型名が表示されていることがあるので、.NET Frameworkでの型名を知っておくのも役に立ちます。

 

情報ソースが増える

C#のことをMicrosoft社のドキュメントで調べているとたまに.NET型の話も出てきて「おや?」と思ったりします。この辺りの対応づけができるようになるとなんとなく「今浮動小数点数の話をしているな」と理解できます。

今日のこの話から言いたかったのは、普段スクリプトを書いているC#そのものに加えて、C#が動いているベースの.NET Frameworkについても目を向けることで理解の幅が広がるという点です。

ドキュメントを読む点についても、C#の面から、そして.NETの面から理解を深めることができます。私はこういう言語仕様を読むのがめっちゃ好きなので、ついつい人にも勧めちゃったりします。

UnityでもPlayer Settingsの設定で.NETのバージョンを選ぶ項目があるので、こうした面からもC#が動いてる環境を知るのも良いかもしれません。

 

まとめ

UnityではC#を使ってスクリプトを作成していきます。そこで使われている型名は、実はフレームワークで定義された型名の別名だったりします。

フレームワークにも目を向けることでより幅の広いプログラミングが可能になるので、余裕ができたときにC#が使っているフレームワークである.NET Frameworkにも目を向けてみるといいかもしれません。

 

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!