1. Create some kind of script like the following:
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon.Common.Enums;
public class BuggyBehaviour : UdonSharpBehaviour {
void Start() {
SendCustomEventDelayedFrames(nameof(_DoUpdate), 1, EventTiming.LateUpdate);
}
public void _DoUpdate() {
var p = Networking.LocalPlayer;
var bone = HumanBodyBones.RightHand;
var pos = p.GetBonePosition(bone);
var rot = p.GetBoneRotation(bone);
transform.SetPositionAndRotation(pos, rot);
SendCustomEventDelayedFrames(nameof(_DoUpdate), 1, EventTiming.LateUpdate);
}
}
  1. Notice that the position is totally wrong.
This may happen in VR, only tested on desktop thus far. Update and PostLateUpdate both work fine. This may also trigger in a regular LateUpdate() call, but I'm just providing a minimal repro case for the specific case I ran into.
This was tested with a pickup, so attach this to a gameobject with a basic primitive, and have a separate VRCPickup to pick up while watching the debug object.