23
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[超初心者向け]UnityでのC#の基礎(1)基本の型float,string,bool,byte

Last updated at Posted at 2015-11-17

Unityは「ゲームを簡単に作れるようにする」ソフトですが、他のプログラミング経験がないままで利用するとScriptが分からなくてつまずいてしまいます。ここでは、Unityで利用するC#に絞って、Scriptの仕組みを解説します。
Scriptのエディタで出てくる簡単な解説は以下で記していますので、一度読んでからこちらを参考にして下さい。

[超初心者向け]やっと納得、Unityを初めて触ると出てくるC#の何だあれの答え

この記事は以下でシリーズしていますので、適宜、参照してください。
[UnityでのC#の基礎]
(http://qiita.com/JunShimura/items/f87c599b3738b804f605#unity%E3%81%A7%E3%81%AEc%E3%81%AE%E5%9F%BA%E7%A4%8E)

これだけでは「なんとなく分かる」程度なので、制作するには更に知識が必要です。

#C#はMicrosoft®が定義しているもの
C#は元来、Unity用に開発された言語では無く、Microsoft®社が開発し公開しています。

Microsoft社のC# リファレンス
https://msdn.microsoft.com/ja-jp/library/618ayhy6.aspx

ISOやJISなどの公的機関の規格として公開されており、それを利用しUnityではプログラミングしています。C#に規定してあるものは、そのままUnityで使えます。更に、独自に拡張してUnityでは実装しています。ここではUnityで実装している部分を利用することを念頭に入れて解説します。C#が本来、規定している機能をくわしく知りたい場合は、上記Microsoft社の解説を参照してください。

#内部では数値
Unityに限らず、コンピュータのソフトウエアは、内部では全て数値の演算でものごとを表現しています。端的に分かりやすい物体の座標や速度以外に、色や音も全て、数値です。それを演算して、それぞれ出力する時にプレイヤーへ別の形で表現されます。数値は2進数の有限な桁数(ビット数)での表現になります。そのため、以下を心得る必要があります。

  • 表せる数の範囲があらかじめ決まっている
  • 演算結果が範囲を超えた場合、どうなるに注意が必要
  • 代入するときに同じ型になっていないと、エラーになるか変換処理が勝手に入る

電卓の計算が桁数に限界があるのと同じで、無限大に近い数や極小な数、無限小数などに注意をはらいがら制作します。

#Unityでよく使われている型
Unityのリファレンスで見られる基本の型は、数種類に限られます。

それぞれを解説します。

##小数を表わすfloat

UnityのScriptリファレンスで、よく用いられる3次元座標を持つVector3型の中にあるXを見てみます。

[Vector3.x Unity - Scripting API:
http://docs.unity3d.com/ja/current/ScriptReference/Vector3-x.html]
(http://docs.unity3d.com/ja/current/ScriptReference/Vector3-x.html)

こう、記されて言います。

public float x;

このfloatが型を示しています。Unityのリファレンスでこれが指定されていたら、小数を含む数値です。

ビット数 最小値 最大値
float 32 $$-3.4 × 10^{38}$$ $$+3.4 × 10^{38}$$

詳しくは以下に書いてあります。
[float (C# リファレンス)
https://msdn.microsoft.com/ja-jp/library/b1e65aza.aspx]
(https://msdn.microsoft.com/ja-jp/library/b1e65aza.aspx)

C#リファレンスでは他にも出てきますが、Unityのリファレンスで数値を表わすものはほぼ、これだけです。座標や力などを組み合わせて数式で計算するときに、同じ型で揃えてあると表現できる範囲が変わらないので、代入する時の誤差などを複雑に考慮する必要が無いからです。

ただし、プログラミングで数式を書くと、演算はもっと大きな型で処理されることがあります。

GameObject objectHoge;
float hogeX=objectHoge.transform.localPosition.x;

##文字列を表わすString

UnityのScriptリファレンスで、よく用いられるGameObject型の中にあるtagを見てみます。

[GameObject.tag Unity - Scripting API:
http://docs.unity3d.com/ja/current/ScriptReference/GameObject-tag.html]
(http://docs.unity3d.com/ja/current/ScriptReference/GameObject-tag.html)

こう、記されて言います。

public string tag;

このstringが型を示しています。Unityのリファレンスでこれが指定されていたら、文字列です。

ビット数 内容
string 可変 テキストを一連の Unicode 文字として表現

詳しくは以下に書いてあります。
[String クラス
https://msdn.microsoft.com/ja-jp/library/system.string.aspx]
(https://msdn.microsoft.com/ja-jp/library/system.string.aspx)

上記はString(先頭が大文字)ですが、Unityで用いているstring(全て小文字)は、.netのSystem.Stringと見なされ処理されています(エイリアス)。

例)

GameObject objectHoge;
string hogeName=objectHoge.name;

##真偽を表わすbool

UnityのScriptリファレンスで、よく用いられるCollider型の中にあるisTriggerを見てみます。

[Collider.isTrigger Unity - Scripting API:
http://docs.unity3d.com/ja/current/ScriptReference/Collider-isTrigger.html]
(http://docs.unity3d.com/ja/current/ScriptReference/Collider-isTrigger.html)

こう、記されて言います。

public bool isTrigger;

このboolが型を示しています。Unityのリファレンスでこれが指定されていたら、真偽の何れかを指定する型です。

ビット数 内容
bool 8 真のときtrue、偽のときfalse

詳しくは以下に書いてあります。
[Boolean 構造体
https://msdn.microsoft.com/ja-jp/library/system.boolean.aspx]
(https://msdn.microsoft.com/ja-jp/library/system.boolean.aspx)

上記はBooleanですが、Unityで用いているboolは、.netのSystem.Booleanと見なされ処理されています(エイリアス)。

例)

public GameObject objectHoge;

objectHoge.isTrigger=true;

if(objectHoge.isTrigger)
{
  //isTriggerがtrueのとき
}

##整数を表わすbyte

UnityのScriptリファレンスで、よく用いられる色座標Color32型の中にあるbを見てみます。

[Color32.b Unity - Scripting API:
http://docs.unity3d.com/ja/current/ScriptReference/Color32-b.html]
(http://docs.unity3d.com/ja/current/ScriptReference/Color32-b.html)

こう、記されて言います。

public byte b;

このbyteが型を示しています。Unityのリファレンスでこれが指定されていたら、整数です。

ビット数 最小値 最大値
byte 8 0 255

詳しくは以下に書いてあります。
[Byte 構造体 (C# リファレンス)
https://msdn.microsoft.com/ja-jp/library/system.byte(v=vs.110).aspx]
(https://msdn.microsoft.com/ja-jp/library/system.byte(v=vs.110).aspx)

整数型なので、小数点以下は格納できません、また、正数のみで負数は格納が出来ません。
ただし、プログラミングで数式を書くと、演算はもっと大きな型で処理されることがあります。

byte b=128;

#まとめ

基礎的な部分はUnityのリファレンスを追った上でMicrosoft®のサイトで確認すると、根本的な情報は全て解説されていますので、先ずはそうして確認すると良いでしょう。他にも当方と含めて解説サイトは多様にありますが、Unityのバージョンに依存したり部分的な解説に留まっている場合も多いので、色々と見比べて使えるサイトを探すのが良いでしょう。書籍化されたものは有料の情報ですので的確な場合が多いですが、いつのUnityに向けられて制作されたかを見落とすと、現状に合わない場合もあります。


この記事は以下でシリーズしていますので、適宜、参照してください。
[UnityでのC#の基礎]
(http://qiita.com/JunShimura/items/f87c599b3738b804f605#unity%E3%81%A7%E3%81%AEc%E3%81%AE%E5%9F%BA%E7%A4%8E)

23
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?