Files
2026-06-07 16:58:24 +01:00

68 lines
2.1 KiB
C#

using UnityEngine;
using VRC.SDK3.Components;
namespace VRC.SDK3.ClientSim
{
[AddComponentMenu("")]
public class ClientSimObjectSyncHelper : ClientSimPositionSyncedHelperBase
{
private VRCObjectSync _sync;
public static void TeleportTo(VRCObjectSync obj, Vector3 position, Quaternion rotation)
{
obj.GetComponent<ClientSimObjectSyncHelper>().TeleportTo(position, rotation);
}
public static void RespawnObject(VRCObjectSync sync)
{
sync.GetComponent<ClientSimObjectSyncHelper>().Respawn();
}
public static void SetIsKinematic(VRCObjectSync sync, bool value)
{
sync.GetComponent<ClientSimObjectSyncHelper>().SetIsKinematic(value);
}
public static void SetUseGravity(VRCObjectSync sync, bool value)
{
sync.GetComponent<ClientSimObjectSyncHelper>().SetUseGravity(value);
}
public static bool GetIsKinematic(VRCObjectSync sync)
{
return sync.GetComponent<ClientSimObjectSyncHelper>().GetIsKinematic();
}
public static bool GetUseGravity(VRCObjectSync sync)
{
return sync.GetComponent<ClientSimObjectSyncHelper>().GetUseGravity();
}
public static void FlagDiscontinuityHook(VRCObjectSync sync)
{
sync.GetComponent<ClientSimObjectSyncHelper>().FlagDiscontinuity();
}
protected override void Awake()
{
base.Awake();
SyncPosition = true;
}
public void Initialize(VRCObjectSync sync, IClientSimSyncedObjectManager syncedObjectManager)
{
base.Initialize(syncedObjectManager);
_sync = sync;
}
private void Start()
{
// Catch Helper not initialized.
if (_sync == null)
{
this.LogWarning($"Destroying uninitialized Helper. Object: {Tools.GetGameObjectPath(gameObject)}");
DestroyImmediate(this);
}
}
}
}