【VR Chat ワールド作成メモ】SDK3のUdonSharpを使うボタン操作

いつもやり方がわからなくなるためのメモです。

VRChat のワールドを作るときのSDK3とUdonSharpを使うボタン操作です。
各ソフトのバージョンは以下のとおりです。

  • Unity 2019.4.31f1
  • VRCSDK3-WORLD-2021.11.24.16.19
  • UdonSharp_v0.20.3

それぞれのパッケージをインポートします。今回は表示するカメラ映像を切り替えるためのボタンを作ります。

ディスプレイを2個設置していますが、1個にします。左に球体を置き、ボタンで映像を切り替えるようにします。

最終的には以下のようにします。上のボタンで1番目のカメラ映像を表示します。下のボタンで2番目のカメラ映像を表示します。

作り方です。
ボタンとする球体に「Udon Behaviour」を追加します。

プログラムソースは「New Program」で追加します。下のプルダウンからUdon C# Program Assetを選んでおきます。Udon Graph から変えておきます。

ボタンを押したときに、Cube_Display_1のActiveをTrueにしてCube_Display_2のActiveをFalseにします。

ソースコードを作成し、適当な場所に保存します。そのあとProgram ScriptをダブルクリックしてVisual Studioを起動します。

以下のように入力します。


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

public class Sphere_display_1 : UdonSharpBehaviour
{
    public GameObject Cube_Display_1;
    public GameObject Cube_Display_2;

    void Start()
    {
        
    }

    private void Interact()
    {
        if (!Networking.IsOwner(Networking.LocalPlayer, this.gameObject)) Networking.SetOwner(Networking.LocalPlayer, this.gameObject);

        SendCustomNetworkEvent(VRC.Udon.Common.Interfaces.NetworkEventTarget.All, "ChangeStreamDisplay");
    }

    public void ChangeStreamDisplay()
    {
        Cube_Display_1.SetActive(true);
        Cube_Display_2.SetActive(false);
    }
}

ボタンをもう1つ下に追加しコードを同じように追加します。
表示するものをトグルするため、Cube_Display_1.SetActive(false);とCube_Display_2.SetActive(true);を記載します。

Udon BehaviourにVisual Studioでコードを書いて保存した後に追加されている項目があります。Cube_Display_1、Cube_Display_2にUnityのHierachyから同名のオブジェクトをドラッグ・ドロップしてセットします。

VR,VRChat,VRCSDK3

Posted by mhwp-admin