【VRChat】UdonSharpの変数とデータ型:int・float・GameObjectの基礎

作成: 2025-12-19

UdonSharpプログラミングの基礎となる変数とデータ型。基本型(int、float、bool、string)からUnity型(Vector3、GameObject、Transform)まで実例で解説。

概要

プログラミングにおいて、変数はデータを一時的に記憶しておくための「箱」のようなものです。プレイヤーの体力、オブジェクトの位置、ゲームのスコアなど、動的に変化する情報を扱うためには変数が不可欠です。

また、変数にはどのような種類のデータを入れることができるかを定義するデータ型が存在します。整数、小数点数、文字列など、データの種類に応じて適切な型を選択する必要があります。

本記事では、UdonSharpで利用できる主要なデータ型と、変数を宣言して使用する基本的な方法について解説します。

変数とデータ型の概念図

変数の宣言

UdonSharp(C#)で変数を使用するには、まず「宣言」を行う必要があります。変数の宣言は、以下の構文で行います。

アクセス修飾子 データ型 変数名;

または、宣言と同時に初期値を設定することもできます。

アクセス修飾子 データ型 変数名 = 初期値;

  • アクセス修飾子: 変数がどこからアクセスできるかを定義します。主にpublicprivateを使用します。
    • 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;
Vector33次元の座標や方向Vector3 pos = new Vector3(0, 1, 0);
Color色 (RGBA)Color c = Color.red;

Inspectorでの変数の利用

変数をpublicで宣言する最大の利点は、UnityエディタのInspectorウィンドウでその値を直接編集できることです。

  1. UdonSharpスクリプトを作成し、public変数を宣言します。
  2. そのスクリプトをシーン内のオブジェクトにアタッチします。
  3. オブジェクトをHierarchyで選択すると、InspectorのUdon Behaviourコンポーネント内に、宣言したpublic変数が表示されます。

これにより、コードを書き換えることなく、ギミックの挙動を微調整できます。例えば、キャラクターの移動速度 (moveSpeed) をInspectorで変更しながら、最適な速度を探すといった作業が容易になります。

また、GameObjectTransformのようなオブジェクトを参照する型の変数の場合は、HierarchyやProjectウィンドウから対象のオブジェクトをドラッグ&ドロップして割り当てることができます。これにより、スクリプトとシーン内のオブジェクトを関連付けることができます。

まとめ

  • 変数は、プログラムで扱うデータを格納するための名前付きの入れ物です。
  • データ型は、変数に格納できるデータの種類を定義します(整数、小数点数、文字列など)。
  • 変数は アクセス修飾子 データ型 変数名; の形式で宣言します。
  • publicで宣言した変数は、UnityエディタのInspectorウィンドウに表示され、値の調整やオブジェクトの割り当てが可能です。
  • privateで宣言した変数は、スクリプトの内部処理でのみ使用されます。

変数とデータ型は、プログラミングにおける最も基本的な構成要素です。これらの概念をしっかりと理解することが、より複雑なギミックを作成するための基礎となります。