SDK Bug & Feature Requests

Please check out the following rules and use the provided template when posting a bug report! Off-topic posts will be deleted.http://bit.ly/vrchat-bug-reports
"Freeze to world" on constraints will always "bake offsets" if there are 0 sources
When setting up a (parent) constraint that is only meant to freeze an object to the world and otherwise return it to it's original location (i.e. back to the hand), doing so with 0 sources (as there's really no need for any sources) will cause the object to be offset instead of snap back, this behavior is gone if any source is added, even if the source/constraint weight is 0. Repro: Add a parent constraint to an object that's placed on the hand, leave it with 0 sources Activate "Freeze to world" Move away from the object Disable "Freeze to world" Observe the object being unfrozen, but offset Adding any source (with a transform) fixes this, regardless of weights. Update: It appears to work in editor with 1 source but a weight set to 0 (so it's there but not used), but in game offsets are almost always still baked, which makes this even weirder. Update 2: It works in game too, but if the object containing the constraint is off, and by a toggle it is turned on and at the same time turns "Freeze to world" off, but 1 frame later turns it on (2 keyframes), it seems not to function for some reason, but extending the animation so it's not 1 frame long and is instead 2 frames, with the 2nd keyframe duplicated (keyframe 0 = object on, freeze off, keyframe 1 and 2 = object on, freeze on) makes it work, I'm very confused as to why that makes a difference, it does not work if "keyframe 1" (the "middle" keyframe) is removed.
1
·
Bug Report
·
tracked
UdonSharp compiler doesn't export SDK proxied event methods unless they're referenced externally, breaking event delivery (e.g. `OnAudioFilterRead`)
SDK Version: 3.10.3 When a UdonSharpBehaviour contains an SDK-proxied event method (such as public void OnAudioFilterRead ) that isn't referenced externally elsewhere in the program, the UdonSharp compiler fails to export the symbol under the expected proxied event name. The entry point ends up exported as something like __0_OnAudioFilterRead (the internal/mangled name) instead of _onAudioFilterRead . This causes the entry-point check inside UdonBehaviour to fail, so the event proxy is never registered and the user's method silently never fires. Reference code path on the SDK side: if (_program.EntryPoints.HasExportedSymbol("_onAudioFilterRead")) { RegisterEventProxy<OnAudioFilterReadProxy>(); } Because HasExportedSymbol("_onAudioFilterRead") returns false, RegisterEventProxy<OnAudioFilterReadProxy>() is never called and the proxied event is never delivered. Steps to reproduce: Create a UdonSharpBehaviour with public void OnAudioFilterRead(float[] data, int channels) . Don't reference the method from any other script, UI event, or SendCustomEvent call. Enter Play mode with an audio source that should drive the filter. Observe that OnAudioFilterRead is never invoked. Inspect the compiled program's exported symbols — the entry point is __0_OnAudioFilterRead instead of _onAudioFilterRead . Note: OnAudioFilterRead is also not available in udongraph
1
·
Bug Report
·
tracked
Load More
→