Player Mod Setter
このUdonBehaviourサンプルスクリプトを使用すると、ワールド内のプレイヤーの移動設定を行うことができます。
変数
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
| Jump Height | float | 3 | プレイヤーのジャンプ力です。重力の影響を受けます。 |
| Run Speed | float | 4 | - キーボード入力: 「Shift」キーを押して前後に移動する際の移動速度です。 - アナログスティック入力: スティックを前後に倒した際の移動速度です。 |
| Walk Speed | float | 2 | - キーボード入力: 「Shift」キーを押さずに前後に移動する際の歩行速度です。 - アナログスティック入力: 「Walk Speed」ではなく常に「Run Speed」が使用されます。 |
| Strafe Speed | float | 2 | 左右に移動する際の移動速度です。 |
Gravity | float | 1 | プレイヤーにかかる重力の大きさです。 |
| Use Legacy Locomotion | bool | false | VRChatの非推奨となったレガシー移動システムを有効にします。一度有効にすると、後からUdonで無効にすることはできません。 |
サンプル
UdonSharpプログラムはPlayerModSetter.cs、Udon GraphプログラムはVRCWorldSettings.assetと呼ばれます。これらは非常によく似た動作をするため、どちらをVRChatワールドで使用しても構いません。
- Udon Graph
UdonSharp
このGraphプログラムは、Packages/com.vrchat.worlds/Samples/UdonExampleScene/UdonProgramSources/VRCWorldSettings.asset/にあります。

これはUdonSharpスクリプトである\Assets\UdonSharp\UtilityScripts\PlayerModSetter.csの簡略化された例です。
using UnityEngine;
using VRC.SDKBase;
public class PlayerModSettings : UdonSharpBehaviour
{
VRCPlayerApi playerApi;
[Header("Player Settings")]
[SerializeField] float jumpImpulse = 3;
[SerializeField] float walkSpeed = 2;
[SerializeField] float runSpeed = 4;
[SerializeField] float gravityStrength = 1;
void Start()
{
playerApi = Networking.LocalPlayer;
playerApi.SetJumpImpulse(jumpImpulse);
playerApi.SetWalkSpeed(walkSpeed);
playerApi.SetRunSpeed(runSpeed);
playerApi.SetGravityStrength(gravityStrengh);
}
}
最終更新: