Skip to content

Releases: MerlinVR/UdonSharp

Fixes and minor UI changes

11 Jul 03:19
Compare
Choose a tag to compare

Fixes:

  • 981b66f: Fix handling for params methods preventing people from using String.Join(string, string[]) with an array input. Reported by @Tavren #47
  • e68c6b4: Make line endings consistent for generated uasm between Windows and Linux, reported by @YannPenven #44

UI Changes:

  • e4c3241: Add ability to drag & drop UdonSharpProgramAssets onto objects in the scene
  • 2789e6f: Make source script only editable on the program asset itself
  • 2789e6f: Make arrays copy the last element to all new elements on array resize
  • 2789e6f: Name object reference's types after the referenced object's type like Unity
  • 0d86a54: Add SendCustomEvent button to UdonSharpBehaviour Utilities drop down

Bug fixes

17 Jun 06:05
Compare
Choose a tag to compare
  • 4a08d33: Fix nameof on single expression names, reported by AirGamer
  • 31bda21: Fix compile issues with Unity versions > 2018.4.20 due to Unity introducing a namespace named SyntaxTree, reported by @ResourceHog in #38
  • 3f66877: Fix issue with array creation expressions incorrectly converting types in some cases
  • 7e2b5ae: Fix issue where empty string interpolations would leave old values in variables, reported by @ikuko in #40
  • 64c8d3e: Reuse the UdonEditorInterface for slight improvement in compile performance and preventing a regression in compile performance in newer SDK's
  • d52ce00: Fix copy elision assigning intermediate values to a variable in some cases, reported by @ikuko in #41

Multithread compile tasks

27 May 04:13
dd76d90
Compare
Choose a tag to compare
  • #36: Multithread compile tasks for each module. On larger projects this can speed up compiles significantly.
  • 3a20b64: Add support for nameof expression, requested by @orels1 #34
  • aa9b912: Prevent readonly and const fields from being settable in the inspectors, reported by @mkc1370
  • d3e9cc4: Fix casts from object to string that were creating an empty string instead of return null, reported by @naqtn #32
  • eb269d7: Fix casts propagating incorrect types when chained together, reported by lamp

Bug fixes

20 May 03:43
7278c89
Compare
Choose a tag to compare
  • #29: Fix issue where symbol tables would be used in invalid cases, reported by Occala
  • 82b3995: Fix issue with creating new U# scripts from the asset browser's tree view. Reported by @ikuko #28

Bug fixes

16 May 19:07
7452a87
Compare
Choose a tag to compare
  • 261d033: Fix implicit type conversions on user fields, reported by AirGamer
  • dbcbb33: Fix issue with jagged array accesses in some cases, reported by AirGamer
  • c6f4daa: Fix issue with getting a value from this in some circumstances
  • f8fdd7b: Add explicit errors for attempting to use out in and ref parameters on user-defined methods since they are not supported yet. These will be added soon.

Improvements to the performance of compiled programs

14 May 03:44
Compare
Choose a tag to compare

This release includes a bunch of changes contributed by bd_ to handle most of the common cases where U# was doing redundant copies on assignment. This improves the performance of some test programs we've tested on by 10-25%. Of course this number will vary based on your use case. In many circumstances these changes also reduce garbage allocations.

  • #18: bd_'s optimizations to copies

Minor bug fixes:

  • 1ac476b: Fix an issue with in place assignment operators on struct arrays
  • bb01bea: Fix issue with array inspector not handling appending UdonSharpBehaviours when one is dragged onto the array.

Fix array modifications in inspector

08 May 05:01
Compare
Choose a tag to compare
  • 4b751b7: Fix regression preventing modification of array elements in the behaviour inspector, reported by @ureishi
  • 056cf1e: Fix rounding on double range sliders, reported by @ureishi

Bug fixes and inspector improvements

07 May 23:57
Compare
Choose a tag to compare
  • 29e6e70: Contributed by @PhaxeNor adds Range attribute support for public float, int, and double properties. This does not yet support negative values for the range.
  • 5593f71: Make synced strings default to null to avoid issues with Udon attempting to sync null strings.
  • c8134cd: Hide type icon on object fields in the inspector to emulate Unity's behavior
  • cf58fdd: Fix issue where the underlying object field would bleed through and make user type object fields much less readable.
  • 85b3ce6: Add explicit errors for attempting to use throw
  • a95d23d: Add undo recording to changing Interact text or proximity in the inspector, reported by Shaun
  • 91aa17f: Attempt at making assembly asset export more robust due to Unity bug, reported by @Reimajo
  • b6453c5: Propagate errors from attempting to use jagged arrays to the program asset to prevent people from entering play mode with errors.
  • f98ed55: Add a blacklist for scanned directories to improve file watcher performance and mitigate a bug in mono on MacOS. Reported and suggested solution by @owlboy #22
  • 5a4e10d: Move compile error check to playModeStateChange callback to intercept attempts to upload a world with compile errors
  • 857f4c1: Fix edge case in type name resolution preventing the use of the VRCPlayerApi GetPickupInHand function, reported by @Ikeiwa
  • a9fd0b8: Fix undo recording on changes to array elements in the inspector
  • a9fd0b8: Make type names for user types match the formatting of Unity
  • 3b0aa5b: Add support for dragging groups of Unity Objects onto arrays to append them, reported by Q and Mimi
  • 6e3f76a: Add handling for implicit ToString conversion on non-simple assignment expressions, reported by @Reimajo #21

Bug fixes

25 Apr 12:37
Compare
Choose a tag to compare
  • 86a22f7: Fix field initializers for nested types like TrackingDataType, reported by Emma
  • 2cf9088: Fix integer casts not truncating floats properly, reported by ヨシヲ

Performance improvement on function calls

23 Apr 23:31
f750130
Compare
Choose a tag to compare
  • f8ae8c7: Contributed by @bd_, changes how function calls are done to use the stack more effectively and reduce the overhead of calling functions. This also fixes issues with calling between functions and custom events on the same behaviour.