TimedTeleport.cs 1016 B

12345678910111213141516171819202122232425262728293031323334
  1. 
  2. using System;
  3. using UdonSharp;
  4. using UnityEngine;
  5. using VRC.SDKBase;
  6. using VRC.Udon;
  7. [AddComponentMenu("Artyom Scripting System/Timed Teleport")]
  8. [DisallowMultipleComponent]
  9. public class TimedTeleport : UdonSharpBehaviour
  10. {
  11. [Header("Teleportation Settings")]
  12. public Transform teleportTarget; // The transform to teleport the player to
  13. public float delay = 1f; // The delay in seconds before teleportation
  14. public override void OnPlayerTriggerEnter(VRCPlayerApi player)
  15. {
  16. if (Networking.LocalPlayer == player)
  17. {
  18. SendCustomEventDelayedSeconds(nameof(TeleportPlayer), delay);
  19. }
  20. }
  21. public void TeleportPlayer()
  22. {
  23. Networking.LocalPlayer.TeleportTo(teleportTarget.position,
  24. teleportTarget.rotation,
  25. VRC_SceneDescriptor.SpawnOrientation.Default,
  26. false
  27. );
  28. }
  29. }