ボタンを押すとオブジェクトを表示・非表示するオブジェクトをワールドに配置する方法について解説

Udon スクリプト作成

サンプルのTogleGameObjectをU#に書き直し

Udon Graph

UnaryNegationは有効と無効を反転させるパネルのようです。

U#

public class TogleGameObjectBySharp : UdonSharpBehaviour
{
    public GameObject targetGameObject;

    public void Toggle()
    {
        // bool型であるtargetGameObject.activeSelfの頭に「!」を付与するとtrueとfalseを反転させる
        targetGameObject.SetActive(!targetGameObject.activeSelf);
    }
}

シーン作成

トグルボタンとミラーを配置します。

UIの配置

コントローラーのビームでボタンやトグルなど押すヤツを配置していきます。

おおよその手順は下記、RenderModeをWorldSpaceにしてVRC Ui Shapeコンポーネントを追加するのがミソ

  1. Hierarchyで右クリックメニューを開きUI→Canvasを追加
  2. CanvasをWorldSpaceに変更
  3. VRC Ui Shapeコンポーネントを追加

トグルボタンの設置

Hierarchyで右クリックメニューを開きUI->ToggleでCanvasにトグルボタン配置します。追加されるToggleとTextコンポーネントを調整します。

Toggle

トグルボタンを押したときに呼び出すメソッドをOn Value Changedに登録します。

Text

文字を綺麗に真ん中に配置するにはAligementをイジればOK
文字の大きさはBestFitを有効にすると勝手に良い感じに修正してくれるのでテキストを配置するときは下記設定がオススメかも

鏡の配置

プロジェクトにあるVRCMiirorプレハブをHierarchyに配置します。

ちなみにPlaneオブジェクトを配置してVRC Mirror Relfectionコンポーネントを追加してもミラーにならなかったので、鏡はこのプレハブを使うしかなさそうです。

Udon Behaviourコンポーネントの追加

  1. 適当なゲームオブジェクトにUdon Behaviourコンポーネントを追加
  2. targetGameObject変数に表示・非表示にしたいオブジェクト(鏡)を追加

参考文献

Low MirrorとかHigh Mirrorなどのミラーに関するパフォーマンス調整はここが下記サイトが詳しいかと思います。

VRChat 技術メモ帳 – VRC_MirrorReflection

ボタンで 表示・非表示するミラーを作成する

投稿ナビゲーション


コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)