箱をイメージ?Unityにおける変数・定数の違いについて知ろう!

unityにおいては、数値や文字といった「値」をたくさん扱います。

数学は苦手…。」という人でも丁寧に説明していくので、心配する必要はありません。

まずは一つずつ理解していきましょう。

今回は、スクリプトの実行について「paiza.io」というブラウザ上で簡単にスクリプトを実行できるサイトを利用します。

解説記事はこちらにありますので、簡単に目を通しておいてください。

 

環境構築不要?「paiza.io」でブラウザ上でプログラミングを試してみよう!

2018.09.02

まずは変数について学ぼう!

unityのスクリプトで値を扱う際に基本となるのが「変数」です。

まずはそんな変数について説明していきます。

変数とは値を入れる「箱」

変数とは、一言で言うと「数字や文字を入れておくための箱」になります。変数という箱を用意することで、値を変更したり、値を利用するのが楽になります。

変数には「型」が存在する!

変数には、それがどんなものかを表す型が存在します。

」とは、例えば「1」や「4」といった整数や「あ」や「りんご」といった文字や文字列のことです。

どんな変数を扱うかによって、変数の「型」が決まります

ここで代表的な変数の型をまとめておきます

スクリプト上の表記 型の名前 方の説明
int 整数型 1や18などの整数
float 浮動小数点型 1.98や0.08のような小数を含む数
(double) 倍精度浮動小数点型 ※浮動小数点よりも小さいくらいまで扱える
bool ブール型 「true」または「false」を扱う
char 文字型 1文字の”文字”
string 文字列型 1文字以上の”文字列”

よく使うのは太字にしたものです。少し補足します。

  • floatとdouble・・・doubleの方が小数の小さい桁まで扱えるのですが、小数のついた数は基本的に”float”で扱います
  • bool・・・数学の命題が真ならば「true」偽ならば「false」です。難しく考えずに、それが正しいか正しくないかくらいの認識で大丈夫です。
  • charとstring・・・両者とも違う型なのですが、1文字でもstringで扱えるので最初の方は文字は”string”で扱うと考えていても大丈夫です。

 

一度に覚えるのは大変なので少しずつ覚えていきましょう!

実際に変数を扱ってみよう!

変数の基本を学んだところで、さっそく変数を扱ってみます。

変数の「宣言」を理解しよう

変数を扱う際、まずは「変数を宣言する」必要があります。

変数の宣言とは、「どんな種類のものを、どんな名前で扱うのか」を決めることです。

そうすることで、スクリプトで変数を扱うことができるようになります。

  • どんな種類=型
  • どんな名前=変数の名前

このように覚えておきましょう!

変数で数値を扱う

いよいよ、変数を使って数値を扱ってみましょう。

スクリプトの実行は「paiza.io」を利用します。使用する前に、左上の言語がC#になっているかをチェックしてください。

まずは次のようなスクリプトを入力してください。

public class Hello{
    public static void Main(){
        // Your code here!
        int x;//変数xの宣言
        int y;//変数yの宣言
        int z;//変数zの宣言
        
         x = 10;//xという変数に整数10を代入
         y = 15;//yという変数に整数15を代入
         z = x + y;//x + yの計算結果を整数で宣言された、変数zに代入
        
        System.Console.WriteLine(z);//zを出力
    }
}

下のウィンドウに25と出力されれば成功です。

C#のスクリプトでは、

本的に値や記号の区切りは半角スペースをあけること、それから各コードの最後は「;」で終わることは覚えておいてください

;」を忘れたり、全角スペースを使うとエラーが発生します!

また、変数を扱う際の基本形は下のようになります。

変数の基本
  1. 変数の宣言:「型名 変数名;」
  2. 変数の代入:「変数名 = 代入する値;」

「=」は代入演算子と呼ばれます両辺が同じと言う意味ではないので覚えておきましょう。

また、上のスクリプトは次のように書くこともできます。
上のpaiza.ioという文字の右の「新規コード」を押すと、スクリプトがリセットされます。

public class Hello{
    public static void Main(){
        // Your code here!
        
        int x = 10;//整数型の変数xの宣言と10の代入
        int y = 15;//整数型の変数yの宣言と15の代入
        int z = x + y;//変数zの宣言と"x + z"の代入を同時に行う
        
        System.Console.WriteLine(z);
    }
}

下の実行ボタンを押して、同じように25が出力されれば成功です。
変数を扱う際は、このように変数の宣言と値の代入を同時に行う方が便利です

続いて、次のようなコードを入力してみましょう!

public class Hello{
    public static void Main(){
        // Your code here!
        
        float x = 0.98f;
        float y = 1.87f;
        float z = x + y;
        
        System.Console.WriteLine(z);
    }
}

2.85と出力されれば成功です!
ちなみに、intやfloatの混在した計算もできます。

public class Hello{
    public static void Main(){
        // Your code here!
        
        float x = 0.98f;
        int y = 5;
        float z = x + y;
        
        System.Console.WriteLine(z);
    }
}

5.98と出力されます。これは”z”がfloatで宣言されているため計算できます。(整数で定義される数は、浮動小数点の範囲に含まれるため
そのため次のように、zを整数で宣言するとエラーが発生します。

public class Hello{
    public static void Main(){
        // Your code here!
        
        float x = 0.98f;
        int y = 5;
        int z = x + y;//整数の箱に小数を含む数を入れたためにエラーが発生
        
        System.Console.WriteLine(z);
    }
}

上のように記述するとエラーが発生することを確認しておきましょう。

ここで、ここまでの注意点をを3つ書きます。

ポイント
  1. 値を扱う際の型に注意!
  2. 「=」は代入演算子と呼ばれ、両辺が同じという意味ではない
  3. floatを使うときは数字の後のfを忘れない!

変数で文字列を扱う

続いては、変数で文字列を扱ってみましょう。基本的には数字と同じように扱えるのですが文字列は「“”(ダブルクォーテーション)」で囲う必要があるので注意が必要です。

それでは、さっそくスクリプトに移ってみましょう!

public class Hello{
    public static void Main(){
        // Your code here!
        string fruits = "りんご" + "みかん" + "バナナ";
    
        System.Console.WriteLine(fruits);
    }
}

「りんごみかんバナナ」と出力されれば成功です。変数を使っても同様に計算ができます。

数値と文字列を一緒に扱うと?

数値と文字列を扱う際には、変数の型に注意してください。

public class Hello{
    public static void Main(){
        // Your code here!
        
        string x = "100";
        string yen = "円です";
        
        string price = x + yen;
        
        System.Console.WriteLine(price);
    }
}

このように書くと、「100円です」と出力されました。

ちなみに、「string x = “100”;」を「int x = 100;」と書いても、「string price = x + yen;」の行でxは100という文字列として認識されるので同じように「100円です」と出力されます。

定数について知ろう!

変数について学んだところで、続いて定数についても説明しておきます。

定数とは?

定数とは、一言で言うなら「後から変更できない値」です。

後から変更できる変数とは異なり、定数は一度値を代入してしまうと変更できません

変数は変更可能、定数は変更不可能

そんな定数はどこで使えばいいのでしょうか?

ここでは、買い物をする例で例えてみましょう。

買い物をする際に必ずかかるもの、それは消費税です。

今は消費税が8パーセントです。なので、消費税抜きの価格の場合における正しい商品価格は「税抜き価格×1.08」です。

これをあえてスクリプト風に書くなら「正しい価格 = 税抜き価格 * 1.08」となります。定数をスクリプトで扱う際には、型の前に「const」をつけます

実際に定数を使ってみよう!

では実際に値段を求めるスクリプトを書いてみましょう。

public class Hello{
    public static void Main(){
        // Your code here!
        const float x = 1.08f;
        int a = 1000;
        int b = 3000;
        
        float anokakaku = a * x;
        float bnokakaku = b * x;
        
        System.Console.WriteLine(anokakaku);
        System.Console.WriteLine(bnokakaku);
    }
}

1080と3240が出力されれば成功です。

public class Hello{
    public static void Main(){
        // Your code here!
        const float x = 1.08f;
        int a = 1000;
        int b = 3000;
        
        x = 1.10f;
        
        float anokakaku = a * x;
        float bnokakaku = b * x;
        
        System.Console.WriteLine(anokakaku);
        System.Console.WriteLine(bnokakaku);
    }
}

定数は後から変更できない値なので、このように後から変更しようするとエラーが発生してしまいます。

一度確認しておきましょう!

まとめ

いかがでしたでしょうか?

今回はボリュームも多く理解するのが大変だったかもしれません。一度で理解できなくてもいいので少しずつ覚えていきましょう!

今回の特に重要なポイントをまとめておきます。

ポイント
  1. 変数は値を入れておく「箱」
  2. 変数のを扱う際には「型」に注意する
  3. 定数は一度値を代入すると変更できない