ハツェの真時代傾向璋

興味を持ったことを書いていく鱗片的な場所から先の未来の場

U# 入門 ①

こんばんは。ハツェです。
ついにVRChatがUnity2018に対応しましたね。
今回は、Udonスクリプトで制作するための記事を書いていきます。
チュートリアル感覚で書いていくので、何パートかに分けれたらなと思っています。
動作環境は、Unity : 2018.4.20f1、VRCSDK : 2021.05.17.12.52、U# : v0.19.11です。

目次


今回の概要

今回は、UdonSharpの導入と簡単なサンプルを一つ紹介します。

UdonSharpをインストールしよう

インストール方法は以下の通りです。

  1. 対応バージョンでUnityプロジェクトを作成
  2. VRCSDK3とUdonをインストール
  3. 最新のUdonSharpをインストール

ちなみに、UdonSharp(以下、U#)はU#のGithubからUnityPackageを入手できます。
github.com

U#をアタッチしてみよう

U#の生成はUdonGraphと同様に、UdonBehaviorから行うことが出来ます。
以下の通りに試してみてください。

  1. SceneにCubeを追加します。
  2. CubeにUdonBehaviorを追加します。
  3. New Programの下のポップアップをUdon C# Program Assetにした後、New Programを押します。
  4. Program Sourceが生成された後、Create Scriptを押してC#ファイルを生成します。
f:id:hatuxes:20210524001841g:plain

U#を書いてみよう

Udon Behaviorからスクリプトを生成すると、以下のようなテンプレートが生成されてるかと思います。

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

public class RotateCube : UdonSharpBehaviour
{
    void Start()
    {
        
    }
}

今回はこれに書き加えて、Cubeを回転させる処理を加えていきましょう。
といっても、コード自体はUnityC#と同じなので、以下のようにするだけです。
void Start()void Update()に書き換えてるところだけ注意してください。

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

public class RotateCube : UdonSharpBehaviour
{
    public float RotateSpeed;

    void Update()
    {
        this.gameObject.transform.Rotate(this.gameObject.transform.up * RotateSpeed * Time.deltaTime);
    }
}

保存してUnityエディタに戻ると、コンパイルが走った後アセンブリが生成されます。

完成

完成したか動作を確認するのは、Editor上でもいいですし、VRChat上でも大丈夫です。
f:id:hatuxes:20200403020741g:plain
サンプルプロジェクトはGithubに置いておきます。 github.com

次回

次回は、変数操作と同期について触れていきます。
hatuxes.hatenablog.jp