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

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

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

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

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));
}
}
最終更新: