概要
プログラミングにおいて、変数はデータを一時的に記憶しておくための「箱」のようなものです。プレイヤーの体力、オブジェクトの位置、ゲームのスコアなど、動的に変化する情報を扱うためには変数が不可欠です。
また、変数にはどのような種類のデータを入れることができるかを定義するデータ型が存在します。整数、小数点数、文字列など、データの種類に応じて適切な型を選択する必要があります。
本記事では、UdonSharpで利用できる主要なデータ型と、変数を宣言して使用する基本的な方法について解説します。

変数の宣言
UdonSharp(C#)で変数を使用するには、まず「宣言」を行う必要があります。変数の宣言は、以下の構文で行います。
アクセス修飾子 データ型 変数名;
または、宣言と同時に初期値を設定することもできます。
アクセス修飾子 データ型 変数名 = 初期値;
- アクセス修飾子: 変数がどこからアクセスできるかを定義します。主に
publicとprivateを使用します。public: UnityエディタのInspectorウィンドウに表示され、値を調整できます。他のスクリプトからもアクセス可能です。private: そのスクリプトの内部でのみ使用します。Inspectorには表示されません。指定しない場合のデフォルトはprivateです。
- データ型: 変数に格納するデータの種類を指定します(後述)。
- 変数名: 変数を識別するための名前です。分かりやすい名前を付けることが重要です。
using UdonSharp;
using UnityEngine;
public class VariableDeclarationExample : UdonSharpBehaviour
{
// publicな変数の宣言(Inspectorに表示される)
public int publicScore = 100;
// privateな変数の宣言(Inspectorに表示されない)
private float privateSpeed = 5.5f;
// 初期値なしで宣言(数値型は0、bool型はfalse、参照型はnullで初期化される)
public GameObject targetObject;
}
主要なデータ型
UdonSharpでよく使用される基本的なデータ型を紹介します。
1. 数値型
-
int(整数型):1,0,-100のような整数を格納します。スコア、個数、回数など、小数点以下の精度が不要な値に使用します。public int playerCount = 0; -
float(浮動小数点数型):3.14,0.5,-9.81のような小数点数を含む数値を格納します。値の末尾にfを付ける必要があります。オブジェクトの位置、角度、速度、時間など、連続的な値に使用します。public float moveSpeed = 3.0f;
2. 真偽値型
-
bool(ブール型):true(真) またはfalse(偽) の2つの状態のみを格納します。スイッチのON/OFF、条件が満たされているかどうかの判定などに使用します。public bool isDoorOpen = false;
3. 文字列型
-
string(文 字列型): "Hello, World!" のような一連のテキストを格納します。ダブルクォーテーション (") で囲んで記述します。プレイヤー名、UIに表示するメッセージ、チャット内容などに使用します。public string message = "ようこそ!";
4. Unity特有の型
Unityでのワールド制作では、Unityエンジンが提供する特有の型を頻繁に使用します。
-
GameObject: シーン内に存在する全てのオブジェクト(キャラクター、背景、ライトなど)を表します。publicで宣言すると、Inspectorからシーン内のオブジェクトをドラッグ&ドロップで割り当てることができます。public GameObject playerAvatar; -
Transform: オブジェクトの位置 (Position)、回転 (Rotation)、スケール (Scale) を管理するコンポーネントです。オブジェクトを動かしたり、回転させたりする際に使用します。public Transform targetMarker; -
Vector3: 3次元のベクトル(座標や方向)を表します。new Vector3(x, y, z)のように値を設定します。オブジェクトの位置や移動方向の指定に使用します。// (1.0, 2.0, 3.0) の位置ベクトル private Vector3 spawnPoint = new Vector3(1.0f, 2.0f, 3.0f); -
Color: RGBA(赤、緑、青、透明度)の色の値を格納します。ライトの色やオブジェクトの色の変更に使用します。public Color lightColor = Color.yellow;
データ型の一覧表
| データ型 | 説明 | 使用例 |
|---|---|---|
int | 整数 | int score = 10; |
float | 小数点数 | float speed = 1.5f; |
bool | 真偽値 (true/false) | bool isActive = true; |
string | 文字列 | string name = "Taro"; |
GameObject | シーン内のオブジェクト | public GameObject doorObject; |
Transform | オブジェクトの位置・回転・スケール | public Transform playerSpawn; |
Vector3 | 3次元の座標や方向 | Vector3 pos = new Vector3(0, 1, 0); |
Color | 色 (RGBA) | Color c = Color.red; |
Inspectorでの変数の利用
変数をpublicで宣言する最大の利点は、UnityエディタのInspectorウィンドウでその値を直接編集できることです。
- UdonSharpスクリプトを作成し、
public変数を宣言します。 - そ のスクリプトをシーン内のオブジェクトにアタッチします。
- オブジェクトをHierarchyで選択すると、InspectorのUdon Behaviourコンポーネント内に、宣言した
public変数が表示されます。
これにより、コードを書き換えることなく、ギミックの挙動を微調整できます。例えば、キャラクターの移動速度 (moveSpeed) をInspectorで変更しながら、最適な速度を探すといった作業が容易になります。
また、GameObjectやTransformのようなオブジェクトを参照する型の変数の場合は、HierarchyやProjectウィンドウから対象のオブジェクトをドラッグ&ドロップして割り当てることができます。これにより、スクリプトとシーン内のオブジェクトを関連付けることができます。
まとめ
- 変数は、プログラムで扱うデータを格納するための名前付きの入れ物です。
- データ型は、変数に格納できるデータの種類を定義します(整数、小数点数、文字列など)。
- 変数は
アクセス修飾子 データ型 変数名;の形式で宣言します。 publicで宣言した変数は、UnityエディタのInspectorウィンドウに表示され、値の調整やオブジェクトの割り当てが可能です。privateで宣言した変数は、スクリプトの内部処理でのみ使用されます。
変数とデータ型は、プログラミングにおける最も基本的な構 成要素です。これらの概念をしっかりと理解することが、より複雑なギミックを作成するための基礎となります。