Udonの基本
このページでは、Udonの使用例を紹介します。すべての例は、Udon GraphまたはUdonSharpで確認できます。
回転する立方体
このビヘイビアは、ゲームオブジェクト(立方体など)をローカルY軸方向に1秒ごとに90度回転させます。

using UnityEngine;
using VRC.SDKBase;
public class RotatingCubeBehaviour : UdonSharpBehaviour
{
private void Update()
{
transform.Rotate(Vector3.up, 90f * Time.deltaTime);
}
}
インタラクト
この挙動では Interact を使用して、プレイヤーがオブジェクトを操作して無効化できるようにします。例えば、プレイヤーがクリックした際にメッセージを消したり、ドアを消滅させたりといった用途に使用できます。プレイヤーがオブジェクトをインタラクトできるようにするには、そのゲームオブジェクトに Collider コンポーネントが設定されている必要があります。

using UnityEngine;
using VRC.SDKBase;
public class ClickMe: UdonSharpBehaviour
{
public override void Interact()
{
gameObject.SetActive(false);
}
}
プレイヤーをテレポートさせる
この動作では Interact と TeleportTo を使用してプレイヤーをテレポートさせます。targetPositon Transform は、テレポート後のプレイヤーの目的地となる位置と回転を決定します。targetPosition GameObject に Collider コンポーネントを追加するのを忘れないでください。

using UnityEngine;
using VRC.SDKBase;
public class TeleportPlayer : UdonSharpBehaviour
{
public Transform targetPosition;
public override void Interact()
{
Networking.LocalPlayer.TeleportTo(
targetPosition.position,
targetPosition.rotation);
}
}
イベントの送信
この挙動は、他のビヘイビアとやり取りする方法を示しています。UdonBehaviour同士は、変数やカスタムイベントを通じて通信を行うことができます。

using UdonSharp;
using UnityEngine;
using VRC.Udon.Common.Interfaces;
public class SomeExample : UdonSharpBehaviour
{
[SerializeField] private SomeOtherExample otherBehaviour;
void Start()
{
if(otherBehaviour.somePublicBoolean)
{
otherBehaviour.SomeCustomEvent();
}
}
public override void Interact()
{
DoStuff();
}
private void DoStuff()
{
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(DoNetworkEventStuff));
}
public void DoNetworkEventStuff()
{
otherBehaviour.somePublicBoolean = false;
otherBehaviour.SomeCustomEvent();
otherBehaviour.SendCustomNetworkEvent(NetworkEventTarget.Owner, nameof(DoOwnerStuff));
}
}
最終更新: