This repository has been archived by the owner on Jan 22, 2022. It is now read-only.
Releases: MerlinVR/UdonSharp
Releases · MerlinVR/UdonSharp
Sync beta support
This release is only for use with the open beta VRCSDK, if you are using live, use 0.19.5. If you are updating from UdonSharp <v0.19.2, you need to delete the Assets/UdonSharp/Plugins
folder before installing this
- Add UI for manual sync vs continuous sync selection to UdonSharpBehaviour inspector
- Add warning and conversion for objects using the now-deprecated position sync option, in favor of using the new VRC Object Sync component instead
- Add
UdonBehaviourSyncMode
attribute to optionally enforce a chosen sync mode and preform additional validation on synced variables - Switch to use new Udon methods to check sync type compatibility (which allows use of the array sync)
- Add handling for calling RequestSerialization() on UdonSharpBehaviours
- Add handling for the OnOwnershipTransferRequest and OnPostSerialization events
- Add handling for the previous owner being passed to OnOwnershipTransferred
- Update sync utility scripts to use reliable sync
- Add build validation for sync mode conflicts
Midi & Input event support
Make sure you have the most recent VRCSDK3. If you are updating from UdonSharp <v0.19.2, you need to delete the Assets/UdonSharp/Plugins folder before installing this
- Add support for events added in the open beta:
MidiNoteOn
,MidiNoteOff
,MidiControlChange
,OnPlayerRespawn
,InputJump
,InputUse
,InputGrab
,InputDrop
,InputMoveHorizontal
,InputMoveVertical
,InputLookHorizontal
, andInputLookVertical
- 14ddda4: Fix case where recursive stack size reservations could be stomped on recursive methods, reported by @NGenesis
Open beta event support
This is a pre-release for the open beta VRCSDK only, if you are using the live SDK use v0.19.3
- Add support for events added in the open beta:
MidiNoteOn
,MidiNoteOff
,MidiControlChange
,OnPlayerRespawn
,InputJump
,InputUse
,InputGrab
,InputDrop
,InputMoveHorizontal
,InputMoveVertical
,InputLookHorizontal
, andInputLookVertical
Bug fixes
This release requires the most recent VRCSDK3 to work. If you are updating from an older version UdonSharp < v0.19.2, you need to delete the Assets/UdonSharp/Plugins
folder before installing this
- 6a03155: Add top level shortcut for SendCustomEvent on UdonBehaviours in the Unity Event UI, requested by @orels1
- c46d941: Fix namespace resolution in some cases when namespaces are used with classes at multiple levels, reported by BeastChild
- b560696: Fix issue with recursion leaking incorrect values from binary short circuit operators in some cases, reported by @NGenesis
- b8013fc, 33de2e6: Minor optimizations to compiler
VRSDK3 update fixes
This release requires the most recent VRCSDK3 to work. If you are updating from an older version UdonSharp, you need to delete the Assets/UdonSharp/Plugins
folder before installing this
- f1953ac: Fix conflicts with the latest VRCSDK due System.Collections.Immutable being required
- 316e41d: Add support for specifying execution order using the
DefaultExecutionOrder
attribute - b426932: Fix the class exposure tree breaking when Odin is imported, reported by Code-L
- 77d85cc: Fix field drawer for
AnimationCurve
- 7a6da3a: Fix debug info not being correct when you declare a field after a method which would cause incorrect line numbers for runtime errors, reported by @Reimajo
- 054d5e9: Make child conversion behavior act consistently between
ConvertToUdonBehaviours
andConvertToUdonBehavioursWithUndo
, reported by Rael - 26f9419: Fix error when attempting to use namespace aliases to be more specific, reported by AirGamer
- a6f0a71: Add compile error when attempting to use
GetComponent(s)<T>()
on VRCSDK3 components because they have been broken since Udon has existed and throw runtime exceptions when you use them. - 0442495: Color build error log better
Udon open beta fixes
This release requires the open beta VRCSDK3 to work. Do not use this if you are not using the open beta SDK. If you are updating from an older version UdonSharp, you need to delete the Assets/UdonSharp/Plugins
folder before installing this
- f1953ac: Fix conflicts with the latest VRCSDK due System.Collections.Immutable being required
- 316e41d: Add support for specifying execution order using the
DefaultExecutionOrder
attribute - b426932: Fix the class exposure tree breaking when Odin is imported
- 77d85cc: Fix field drawer for
AnimationCurve
Recursion support
As always, make sure you have the latest VRCSDK3 installed before upgrading U# or you may run into errors
Features
- aa79a63: Recursion support has been added to U#, you must mark any methods that will be called recursively with the
[RecursiveMethod]
attribute. This has an overhead so only use it when you need recursion, and consider converting your algorithms to be iterative if you are looking for performance. - 17eb24f: Add handling for bitwise not operator
~
- 2af6f57: Add support for using
foreach
to iterate children of Transforms - fda52e9: Add support for using Odin Inspector on UdonSharpBehaviours, you need to enable the Odin inspector handling in the UdonSharp settings in your project settings to use it by changing the
Default Behaviour Editor
option - #65: Add support for overriding
RequiresConstantRepaint
in custom inspectors, contributed by @NGenesis - a20391f b52c40c: Minor compile performance improvements
Fixes
- a99841a: Allow the binder to error about using nullable field declarations, reported by Narry
- 7c0f1a1: Fix regression preventing assigning VRC Video player components of non-base types, reported by @owlboy
- ed8a472: Handle when field initializers throw exceptions better
- 4dd037b: Fix exceptions piling up in the error field in some cases
- c923fdb: Sanitize script names more stringently when creating new scripts to prevent issues with Unity failing to recognize the class
- 96068ca: Better handle a case where array serialization while using custom inspectors could get broken more than it should.
- bf59eb2: Make custom inspector serialization a bit more lenient with types that are aliased internally by U#
- 0cb722a: Make Harmony unpatch methods before an assembly reload, this may help with one mode of failure that Mono likes to die on sometimes.
- 5b760c1: Make Exposure tree text white when highlighted so it's actually readable, requested by Mochie
- 5736673: Add more VRC log types that were added in recent patches to the log filter
- 991078a: Disable collision transfer by default when using AddUdonSharpComponent
- f4125e7: Add warning for when a script's file name does not match its class name since this causes many issues with Unity for some reason
- 1cf6156: Add warning when UdonSharpProgramAssets do not have a script assigned as people have gotten confused when they have a program asset setup without a reference
- b2eea00: Add warning dialog when changing the source script on an UdonSharpProgramAsset since it can cause things to break if it's in use
- a7a88db: Add warning for when multiple UdonSharpProgramAssets reference the same source script since this can cause the compiler to act in unexpected ways
Bug fixes
- c9c0ba5: Fix for Udon GetComponent bug that was causing GetComponent to throw errors depending on where the source object for the GetComponent came from.
- 980409f: Fix arrays of VRC components more
- 30f0413: Fix custom inspector serializer handling for VRC components
- 5f0dab4: Re-enable array optimization on arrays of subclasses of UnityEngine.Objects
Bug fixes + Workarounds for things Udon is still missing
Features:
- 6bf65ca: Add string indexer workaround
- 70384ac: Add Vector2/3/4 + Matrix4x4 indexers
- a1428e2: Add int->enum cast workaround #62
- 5bd9ca5: Added pre and post compile callbacks, contributed by @NGenesis in #64
Fixes:
- f8f94a2: Default off on collision ownership transfer and warn when enabled
- 2d534a3: Prevent some unneeded dependencies from being included in builds
- 037f5bb: Recreate proxy components after world builds, reported by @orels1
- 25e867b: Fix using arrays of VRC components like VRC_Pickup
- 7dc62b6: Fix OnEnable, OnDisable, OnDestroy getting called on proxy behaviours incorrectly, reported by @PhaxeNor
- 461e4fa: Hide private members by default on the included Easy Event Editor
- 409c2e1: Fix calling GetComponent on UdonBehaviour/UdonSharpBehaviour variables
- 461cf39: Fix assembly export heap size, reported by @Reimajo
1cf3175: Use System.Object[] indexers for UnityEngine.Object array types to make performance not terribleGetComponent() does not play nice with part of this- 2af31ff: Fix issue with method parameters masking builtin unity variables like
gameObject
, reported by @dooly123 and @Reimajo - a0c13f3: Fix method overload finding when passing null constants into methods
- 79f95eb: Fix variables not being detected when they are declared after methods that reference them
- 013bd37: Downgrade to .NET 4.5 version of Harmony library because VS code targets the wrong .NET version compared to Unity
Bug fixes and support for UdonBehaviour.enabled
Features
- 5587b7c: Add support for
UdonBehaviour.enabled
property that is exposed in the current beta SDK. This release works on the current live SDK but you will get errors if you attempt to useUdonBehaviour.enabled
without the beta SDK
Fixes
- 8990b25: Fix issues with multi line namespace definitions, reported by @ureishi #59
- fab24af: Add checking to prevent overriding of builtin Udon methods like SetProgramVariable in custom classes which breaks things #60
- 04a0276: Allow ColorUsageAttribute on Color32 variables
- 777dcaa: Allow Utilities dropdown label to be clicked
- 77ed09d: Fix error caused by having a package imported that uses CustomEditor attributes weirdly, reported by @Vowgan
- 1aed313: Fix error when there are unloaded scenes in the editor, reported by Hito