36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
|
|
using UnityEngine;
|
|
using VRC.SDKBase;
|
|
|
|
namespace UdonSharp.Examples.Utilities
|
|
{
|
|
/// <summary>
|
|
/// Follows one of the chosen playerApi tracking targets
|
|
/// </summary>
|
|
[AddComponentMenu("Udon Sharp/Utilities/Tracking Data Follower")]
|
|
[UdonBehaviourSyncMode(BehaviourSyncMode.NoVariableSync)]
|
|
public class TrackingDataFollower : UdonSharpBehaviour
|
|
{
|
|
public VRCPlayerApi.TrackingDataType trackingTarget;
|
|
|
|
VRCPlayerApi playerApi;
|
|
bool isInEditor;
|
|
|
|
private void Start()
|
|
{
|
|
playerApi = Networking.LocalPlayer;
|
|
isInEditor = playerApi == null; // PlayerApi will be null in editor
|
|
}
|
|
|
|
private void LateUpdate()
|
|
{
|
|
// PlayerApi data will only be valid in game so we don't run the update if we're in editor
|
|
if (isInEditor)
|
|
return;
|
|
|
|
VRCPlayerApi.TrackingData trackingData = playerApi.GetTrackingData(trackingTarget);
|
|
transform.SetPositionAndRotation(trackingData.position, trackingData.rotation);
|
|
}
|
|
}
|
|
}
|