VRChat 非公式日本語ドキュメント

UdonSharp

UdonSharpを使用すると、C#でUdonスクリプトを作成できます。UdonSharpはVRChat Worlds SDKに含まれており、作成したC#コードをUdonアセンブリコードにコンパイルします。

UdonSharpスクリプトの作成方法

以下の手順に従うことで、プロジェクトウィンドウまたはヒエラルキーウィンドウからUdonSharpスクリプトを作成できます。

プロジェクトウィンドウから作成する場合

  1. プロジェクトのアセットエクスプローラー内を右クリックします。
  2. 「Create」 > 「U# script」の順に選択します。
  3. 「U# script」をクリックします。ファイルの作成ダイアログが開きます。
  4. スクリプトの名前を入力し、「Save」をクリックします。
  5. これにより、.cs スクリプトファイルと、そのスクリプト用に設定されたUdonSharpプログラムアセットが同じディレクトリに作成されます。

ヒエラルキーウィンドウから作成する場合

  1. シーン内に新しいゲームオブジェクトを作成します。
  2. そのオブジェクトに Udon Behaviour コンポーネントを追加します。
  3. 「New Program」ボタンの下にあるドロップダウンをクリックし、「Udon C# Program Asset」を選択します。
  4. 「New Program」ボタンをクリックします。これにより、新しいUdonSharpプログラムアセットが作成されます。
  5. 「Create Script」ボタンをクリックし、スクリプトの保存先と名前を選択します。

新しいUdonSharpスクリプトを作成すると、以下の2つのファイルが生成されます。

using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;

public class YourScriptName : UdonSharpBehaviour
{
    void Start()
    {

    }
}

好みのエディタで UdonSharpBehaviour を編集して、プログラミングを開始してください。作成した UdonSharpBehaviour は、シーン内の任意の GameObject に追加できます。

サポートされているC#の機能

UdonSharpは、C#の基本的な構文のほとんどをサポートしています。

Unity/C#機能との違い

UdonSharpはC#言語仕様のいかなるバージョンにも完全準拠しているわけではありません。一部のC#機能は実装されていないか、動作しません。

サンプルスクリプト

回転するキューブのデモ

このスクリプトは、アタッチされたオブジェクトを1秒ごとに90度回転させます。

using UnityEngine;
using UdonSharp;

public class RotatingCubeBehaviour : UdonSharpBehaviour
{
    private void Update()
    {
        transform.Rotate(Vector3.up, 90f * Time.deltaTime);
    }
}

その他のサンプル

よくある質問

UdonSharpはUdonのすべての機能に対応していますか?

はい。Udonがサポートしている機能であれば、UdonSharpでもすべて利用可能です。UdonSharpがアクセスできるすべての機能は、class exposure treeで確認できます。

1つのGameObjectに複数のUdonSharp UdonBehavior を追加できますか?

はい。

C#のチュートリアルを見ながらゼロから学習したいのですが、UdonSharpで動作しない一般的なC#の機能はありますか?

UdonSharpを学習中で、まだC#に慣れていない場合、UdonやUdonSharpでまだサポートされていない一般的な手法に出くわすことがあります。これには以下が含まれます(これらに限定されません)。

最終更新: