.data_start

    .export trackingTarget

    __refl_const_intnl_udonTypeID: %SystemInt64, null
    __refl_const_intnl_udonTypeName: %SystemString, null
    trackingTarget: %VRCSDKBaseVRCPlayerApiTrackingDataType, null
    isInEditor: %SystemBoolean, null
    playerApi: %VRCSDKBaseVRCPlayerApi, null
    __0_this_intnl_UnityEngineTransform: %UnityEngineTransform, this
    __0_trackingData_TrackingData: %VRCSDKBaseVRCPlayerApiTrackingData, null
    __0_const_intnl_SystemObject: %SystemObject, null
    __0_const_intnl_SystemString: %SystemString, null
    __0_const_intnl_SystemUInt32: %SystemUInt32, null
    __0_const_intnl_VRCSDKBaseVRCPlayerApi: %VRCSDKBaseVRCPlayerApi, null
    __0_intnl_UnityEngineQuaternion: %UnityEngineQuaternion, null
    __0_intnl_returnTarget_UInt32: %SystemUInt32, null
    __0_intnl_UnityEngineVector3: %UnityEngineVector3, null

.data_end

        
         #  using UnityEngine;
        
         #  using VRC.SDKBase;
        
         #  namespace UdonSharp.Examples.Utilities
        
         #  [AddComponentMenu("Udon Sharp/Utilities/Tracking Data Follower")]
        
         #  public class TrackingDataFollower : UdonSharpBehaviour
.code_start
        
         #  public VRCPlayerApi.TrackingDataType trackingTarget;
        
         #  VRCPlayerApi playerApi;
        
         #  bool isInEditor;
        
         #  private void Start()
    .export _start
        
    _start:
        
        PUSH, __0_const_intnl_SystemUInt32
        
         #  {
        
         #  playerApi = Networking.LocalPlayer;
        PUSH, playerApi
        EXTERN, "VRCSDKBaseNetworking.__get_LocalPlayer__VRCSDKBaseVRCPlayerApi"
        
         #  isInEditor = playerApi == null; // PlayerApi will be null in editor
        PUSH, playerApi
        PUSH, __0_const_intnl_VRCSDKBaseVRCPlayerApi
        PUSH, isInEditor
        EXTERN, "SystemObject.__op_Equality__SystemObject_SystemObject__SystemBoolean"
        PUSH, __0_intnl_returnTarget_UInt32 # Function epilogue
        COPY
        JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
        
        
         #  private void LateUpdate()
    .export _lateUpdate
        
    _lateUpdate:
        
        PUSH, __0_const_intnl_SystemUInt32
        
         #  {
        
         #  if (isInEditor)
        PUSH, isInEditor
        JUMP_IF_FALSE, 0x00000078
        
         #  return;
        PUSH, __0_intnl_returnTarget_UInt32 # Explicit return sequence
        COPY
        JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
        
         #  VRCPlayerApi.TrackingData trackingData = playerApi.GetTrackingData(trackingTarget);
        PUSH, playerApi
        PUSH, trackingTarget
        PUSH, __0_trackingData_TrackingData
        EXTERN, "VRCSDKBaseVRCPlayerApi.__GetTrackingData__VRCSDKBaseVRCPlayerApiTrackingDataType__VRCSDKBaseVRCPlayerApiTrackingData"
        
         #  transform.SetPositionAndRotation(trackingData.position, trackingData.rotation);
        PUSH, __0_trackingData_TrackingData
        PUSH, __0_intnl_UnityEngineVector3
        EXTERN, "VRCSDKBaseVRCPlayerApiTrackingData.__get_position__UnityEngineVector3"
        PUSH, __0_trackingData_TrackingData
        PUSH, __0_intnl_UnityEngineQuaternion
        EXTERN, "VRCSDKBaseVRCPlayerApiTrackingData.__get_rotation__UnityEngineQuaternion"
        PUSH, __0_this_intnl_UnityEngineTransform
        PUSH, __0_intnl_UnityEngineVector3
        PUSH, __0_intnl_UnityEngineQuaternion
        EXTERN, "UnityEngineTransform.__SetPositionAndRotation__UnityEngineVector3_UnityEngineQuaternion__SystemVoid"
        PUSH, __0_intnl_returnTarget_UInt32 # Function epilogue
        COPY
        JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
        
.code_end
