42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
|
|
||
|
using UnityEngine;
|
||
|
using UdonSharp;
|
||
|
using VRC.SDKBase;
|
||
|
|
||
|
namespace UdonSharp.Examples.Utilities
|
||
|
{
|
||
|
[AddComponentMenu("Udon Sharp/Utilities/Player Mod Setter")]
|
||
|
[UdonBehaviourSyncMode(BehaviourSyncMode.NoVariableSync)]
|
||
|
public class PlayerModSetter : UdonSharpBehaviour
|
||
|
{
|
||
|
public float jumpHeight = 3f;
|
||
|
public float runSpeed = 4f;
|
||
|
public float walkSpeed = 2f;
|
||
|
public float strafeSpeed = 2f;
|
||
|
public float gravity = 1f;
|
||
|
|
||
|
[Tooltip("Enables legacy locomotion which allows stutter stepping and wall climbing")]
|
||
|
public bool useLegacyLocomotion = false;
|
||
|
|
||
|
void Start()
|
||
|
{
|
||
|
var playerApi = Networking.LocalPlayer;
|
||
|
|
||
|
// Prevent error in editor from null player API
|
||
|
if (playerApi != null)
|
||
|
{
|
||
|
playerApi.SetJumpImpulse(jumpHeight);
|
||
|
playerApi.SetRunSpeed(runSpeed);
|
||
|
playerApi.SetWalkSpeed(walkSpeed);
|
||
|
playerApi.SetStrafeSpeed(strafeSpeed);
|
||
|
playerApi.SetGravityStrength(gravity);
|
||
|
|
||
|
if (useLegacyLocomotion)
|
||
|
playerApi.UseLegacyLocomotion();
|
||
|
}
|
||
|
|
||
|
Destroy(this);
|
||
|
}
|
||
|
}
|
||
|
}
|