Unity、C#中使用的类型总结
Unity,C#で使う型まとめ
はじめに
この記事はUnityを使い始めて半年の人間(しかもプログラミング歴も長くない)が、ゲーム制作をしていく中で覚えたこともまとめたことです。
いくつかの点で間違っている可能性もあるので大目に見てやってください。
使用環境
Unity:6000.4.3f1(Unity 6.4)
C#:9.0
そもそも型って?
Unityで使うときに必ずと言っていいほど使う多種多様な型。
結論から言うと型は変数が扱えるデータの種類を表すもの
例えば
private GameObject door;
private int missCount = 0;
今使用しているコードから抜粋してみると
GameObjectはUnityのシーン内のオブジェクトを
intは整数を扱う型。
そのあとに続くdoorやmissCountが変数名になる。
変数に関してはまたまとめようと思う。
今回はその型の種類についてまとめていく。
C#の基本的な型
| 型 | 用途・種類 | 例 |
|---|---|---|
| int | 整数 | int day = 0; |
| float | 小数 | float speed = 3.5f; |
| double | より精度の高い小数 | double speed = 1.2345678912; |
| bool | true/false | bool isMoving = true; |
| string | 文字列 | string name = "player"; |
| char | 1文字 | char initial = 'A'; |
ここで気になるのが
- floatとdouble
- stringとchar
これらの使い分けについて。
調べた結果、float の有効桁数は約6〜9桁、double は約15〜17桁とのこと。
「小数第何位まで」という意味ではなく、大きな数になるほど、小数部分を細かく表しにくくなるらしい。
また、0.1f のような短い小数でも、少し誤差が生じる場合がある。
Unityでは座標などに float が使われているので、普段の移動や速度には float、もっと正確な計算が必要なときには double、という使い分けになりそう。
参考:Microsoft Learn:浮動小数点数型
ちなみに、3.5f の末尾の f は「この数値は float 型」という印。
stringとcharに関しては文字列か一文字かではあるが、
いまいちcharを使った方がいいところを思いつかなかったが、どうやら
一文字ずつ処理するときに使うと良いらしい。
例えば、文章の中に「?」が含まれているか調べるのに役立ちそう。
Unityのオブジェクトや機能の型(UI以外)
| 型 | 用途・種類 |
|---|---|
| GameObject | ゲームオブジェクト本体 |
| Transform | 位置・回転・拡大縮小 |
| Rigidbody / Rigidbody2D | 物理的な動き(重力とか) |
| Collider / Collider2D | 当たり判定 |
| Animator | アニメーション |
| AudioSource | 音の再生元 |
| AudioClip | 音そのもの |
| Camera | カメラ |
| SpriteRenderer | 2D画像の描画 |
| Sprite | 2D画像そのもの |
| MeshRenderer | 3Dのメッシュの描画 |
UIに使う型
using UnityEngine;
using UnityEngine.UI;
using TMPro;
今回は、必要に応じて上記の using を先に記述している前提での型名。
| 型 | 用途・種類 |
|---|---|
| Button | ボタン |
| Image | UIの画像 |
| Slider | スライダー |
| RectTransform | UIの位置やサイズ |
| TMP_Text | テキスト |
| TMP_InputField | 文字入力欄 |
上の表にあるものは、GameObjectのコンポーネント(機能)である。
UIもGameObjectなので、Transformを通して移動させることはできる。
さらに、Button 型として取得すると、ボタンを押せるかどうかを変更できる。RectTransform を使うと、UIの位置やサイズに加えて、アンカーや余白なども設定できる。
ちなみにSpriteとImageの違いについては
Spriteが画像データであり、Imageはそれを用いたUIの部品。
というような違いになる。
使い方としては、Imageに表示したいSpriteを設定して使う。
例えるならImageが額縁を含めた壁に飾られた絵。
Spriteは中に入れられた絵そのもの、といったところだろうか。
同じ Sprite を、複数の Image に設定して表示することもできる。
参考:Unity公式:Image
まとめ
今回まとめただけでもかなり量があったが、おそらくはまだある。
全てを調べて覚えることは難しいので、
ひとまずは「こういう型がある」となんとなく知っておいて必要な時に調べていこうと思う。
また、コンポーネント特有の機能があるかもという意識で今後も制作していくと良いのかもしれない。
おまけの宣伝
現在UMINEKOWalKingというゲーム制作チームで
【BLACKOUT:Fatal Exposure】という心霊写真をテーマにした2DホラーADVゲームをUnityで制作しています。
今回もこのゲームを作る中で調べたことのまとめになります。

もし興味があればXなど見ていただけると幸いです。
UMINEKOwalKing Xアカウント
Steamページ(体験版配信中です!)
来源:Qiita · Unity 开发社区 · qiita.com