小数にはfが必要
CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 3/85。
整数だけではゲームには不十分です。風船は3.5の位置に浮かび、プレイヤーは1秒あたり4.2単位の速さで走ります。小数点を含む数値には、floatという独自の型があります。
float speed = 4.2f;末尾のfに注目してください。C#では、4.2だけだと別の小数型であるdoubleになり、Unityの位置やサイズはfloatです。fは、その数値がfloatであることをC#に伝えます。これを省略すると、Unityはゲームの起動を拒否し、コンソールに次のエラーが表示されます。
error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type怖そうに見えますが、「fを追加する」という意味だけです。2のような整数にはfは必要ありません。そのままでfloatに収まります。
もう一つ意外な点があります。2つのintを割ると整数部分だけが残るため、7 / 2は3になります。7 / 2fと書けば、3.5になります。
チャレンジ
簡単風船のスクリプトを修正してから、より高く、大きく浮かぶようにしましょう。
- 「プレイ」を押します。コンソールに
heightの行のエラーCS0664が表示されます。 - その行を
float height = 3.5f;に変更します。 - サイズの行を
float size = 1.5f;に変更します。小数点を含む数値にはすべてfが必要です。
「プレイ」を押します。風船は3.5の高さで、元のサイズの1.5倍になって浮かびます。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class Balloon : MonoBehaviour
{
void Start()
{
float height = 2.5;
float size = 1;
transform.position = new Vector3(0, height, 0);
transform.localScale = new Vector3(size, size, size);
}
}
Unityスクリプトの基礎のすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド