Menu
CoddyTech

小数には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になります。

challenge icon

チャレンジ

簡単

風船のスクリプトを修正してから、より高く、大きく浮かぶようにしましょう。

  1. 「プレイ」を押します。コンソールにheightの行のエラーCS0664が表示されます。
  2. その行をfloat height = 3.5f;に変更します。
  3. サイズの行を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プレイグラウンド