💬

【VRChat】Udonをこねてオブジェクトの表示/非表示を作る~Interact~

2023/11/20に公開

ボタンの設置の仕方は↓で投稿しているので、今回はInteractボタンをクイックしたときに動くUdonのプログラムを作っていきます。

環境

  • Windows(10)
  • VCC(2.1.6)
    • Unity(2019.4.31f1)

事前準備

  • Visual Studio(主は2019)
  • 適当なVRC Worldのプロジェクト

手順

3Dオブジェクトの配置

1. Hierarchyに3Dオブジェクトを追加

  • Hierarchyで右クリックして、「3D Objects>Cube」と「Sphere」を追加します。
    ※まとめは追加できないので、1つずつです。
  • いい感じの位置に配置してください。

2. Cubeのボタン化

  • 赤枠の大きさを変更する機能などを使用してボタンっぽい大きさにします。
    ※そのままのサイズでも問題ありません。

UdonSharpファイルの追加

1. AssetsにUdonのファイルを追加

  • Assetsフォルダ配下の任意のフォルダをクリック
  • 右クリックして、「Create>U# Script」をクリック
    ※僕はScriptというフォルダを作成して、そこにUdonのファイルを作成しています。

2. Udonに任意の名前を付けて保存

↓の画像をようにファイルが2つできます。
白い方を操作していきます。

3. U# Scriptにプログラムを追加

白い方のファイルをダブルクリックします。

↓すると、インストールされているVisual Studioが立ち上がります。

  • 下記プログラムを追加します。
test.cs
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;

public class test : UdonSharpBehaviour
{
    [SerializeField]
    private GameObject obj; // Inspectorで消したいオブジェクトをセットします
    
    void Start()
    {
    }
    // Interactを追加します。
    public override void Interact()
    {
        // obj.activeSelfはオブジェクトのアクティブ状態を取得する
        if (obj.activeSelf)
        {
            // アクティブなら非アクティブにする
            obj.SetActive(false);
        }
        else
        {
            // 非アクティブならアクティブにする
            obj.SetActive(true);
        }
    }
}

4. U# ScriptをCubeに追加

  • 「test」をドラッグして、Hierarchy>Cubeのところに持っていきます
  • InspectorのところにTestが表示されていればOK

5. 表示/非表示させたいオブジェクトの設定

Inspector>Test>Utilities>Objに、Hierarchy>Sphereをドラックして持っていきます

結果

こんな感じで、表示/非表示が切り替わればOKです!

あとがき

Interactはラクでいいですねぇ(笑
今度はボタンの方に処理を追加する記事を作成しますね!
Interactよりはクセ?があるかもです。

関連記事

Discussion