プラベのVRChatブログ

VRChatで楽しく過ごすためのTipsをまとめてます。

Unity Udon/U#/C# 数あるオブジェクトの中からランダムに1つを選出する

Twitterの相互さんからのお題で、VRChatワールド用の簡単な U# (UdonSharp) 作例ひとつ書きました。

あらかじめ指定した複数のオブジェクトの中からランダムで1つ選択し、デバッグコンソールにオブジェクト名をメッセージ出力するだけの簡単なスクリプトです。

RandomSelect Example

コード

using UdonSharp;
using UnityEngine;

namespace Example
{
    /// <summary>
    /// あらかじめ指定されたオブジェクト群の中からランダムで1つ選択して処理するU#作例
    /// </summary>
    [UdonBehaviourSyncMode(BehaviourSyncMode.None)]
    public class RandomSelect : UdonSharpBehaviour
    {
        [SerializeField, Header("選択対象オブジェクト")]
        private GameObject[] targets;

        /// <summary>
        /// インタラクトでオブジェクトの1つを選択処理
        /// </summary>
        public override void Interact()
        {
            // 選択オブジェクトのインデックスをランダム取得
            int selectedIndex = Random.Range(0, targets.Length);
            // 選択オブジェクトに対して処理実行
            SomeProcess(selectedIndex);
        }

        /// <summary>
        /// 選択したオブジェクトに実行する処理など
        /// </summary>
        /// <param name="index">インデックス番号</param>
        private void SomeProcess(int index)
        {
            Debug.Log("オブジェクト " + targets[index].name + " が選択されました");
        }
    }
}