出力・変数・型
プログラムは値を受け取り、変数に保存し、計算や判定に利用します。この章では値を表示する方法と、値を扱うための基本を整理します。
値を出力する
Console.WriteLineは値を表示して改行し、Console.Writeは改行せずに続けて表示します。
Console.Write("Score: ");
Console.WriteLine(120);
Console.WriteLine("Ready");
出力は次のようになります。
Score: 120
Ready
Unityのスクリプトでは、開発中の確認やデバッグにDebug.Logを使います。
Debug.Log("Score: " + score);
変数とは
変数は値を名前で扱うための領域です。宣言するときは型、変数名、必要なら初期値を書きます。
int score = 120;
string playerName = "Aoi";
bool isPlaying = true;
Console.WriteLine(playerName);
Console.WriteLine(score);
Console.WriteLine(isPlaying);
この例ではplayerNameに文字列、scoreに整数、isPlayingに真偽値を保存しています。出力はAoi、120、Trueの順に3行です。C#のbool値を文字列として表示するとTrueまたはFalseになります。
基本的なデータ型
| 型 | 用途 | 例 |
|---|---|---|
| int | 整数 | 10 |
| float | 単精度浮動小数点数 | 1.5f |
| double | 倍精度浮動小数点数 | 3.14 |
| string | 文字列 | "Hello" |
| char | 1文字 | 'A' |
| bool | 真偽値 | true / false |
Unityでは座標や速度などにfloatがよく使われます。float型の数値リテラルには、1.5fのように末尾へfを付けます。
代入と更新
int hp = 100;
hp = 80;
hp = hp - 10;
Console.WriteLine(hp);
処理後のhpは70です。最初の代入で100を保存し、次に80へ上書きし、最後に現在の値から10を引いています。代入演算子=は左右が等しいかを調べる演算子ではなく、右辺の値を左辺の変数へ保存する演算子です。
文字列への値の埋め込み
文字列補間を使うと、変数の値を読みやすく表示できます。
string playerName = "Aoi";
int score = 120;
Console.WriteLine($"{playerName}: {score}");
出力はAoi: 120です。Unityのログでも同じ書き方ができます。
Unityでの利用例
using UnityEngine;
public class PlayerStatus : MonoBehaviour
{
[SerializeField] private int hp = 100;
[SerializeField] private float moveSpeed = 4.5f;
[SerializeField] private string playerName = "Aoi";
void Start()
{
Debug.Log($"{playerName} HP:{hp} Speed:{moveSpeed}");
}
}
SerializeFieldを付けたprivateフィールドはInspectorから値を設定できます。intは体力のような整数値、floatは移動速度のような小数値に向いています。
よくある間違い
- floatの値にfを付け忘れ、型変換エラーになる。
- 文字列をダブルクォーテーションで囲まない。
- 変数へ値を代入する前に読み取る。
- 大文字と小文字を取り違える。C#ではscoreとScoreは別の名前です。
この章の要点
型は値の種類を決め、変数はその値を名前で扱えるようにします。出力はコンソールアプリならConsole.WriteLine、UnityならDebug.Logが基本です。次章では、値に応じて処理を分けたり、同じ処理を繰り返したりする方法を扱います。