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