質問: new vector3(765, 961, 876); ←fはついていないですし。 またunityのtransformで positionをx=0.5、y=0.5、z=0.5とするのと、x=0.5f、y=0.5f、z=0.5fとするのと位置が全然違います。 分かりやすい説明、サイトなどあれば教えてください
回答: これは unity の仕様というよりは c 言語およびその表記を流用している言語の大半で採用している言語仕様の話です。 たとえば 0.5 という値をそのまま書いた場合。これは実数値の 0.5 として扱われます。しかし、上記の大半の言語では実数値を表す型は float と double の 2 種類があり、0.5 が float と double のどちらの型かを仕様で決めなくてはなりません。そして、上記の大半の言語ではこれを double 型の 0.5 と規定しています。 では float 型の 0.5 がほしい場合はどうしたらいいか。そのときのために f を後置した 0.5f という表記を float 型の 0.5 として扱うと言語仕様で規定しています。 http://msdn.microsoft.com/ja-jp/library/aa691085(v=vs.71).aspx では > vector3 v = new vector3(765, 961, 876); になぜ f を付けていないかですが、この場合はこう書かれた時点では数値に . が使われていないため整数型の値としてまず扱われます。しかし、整数型の値を float 型の引数の値として扱う時点で暗黙の型変換が行われます。 http://msdn.microsoft.com/ja-jp/library/ms173105.aspx http://msdn.microsoft.com/ja-jp/library/y5b434w4.aspx つまり、この場合は f をつけなくてもその値が float に自動的に変換されることになっているため、つけてもつけなくてもそれぞれの値は float 型の値として処理されます。