Skip to content
This repository has been archived by the owner on Jan 22, 2022. It is now read-only.

Releases: MerlinVR/UdonSharp

Bug fixes

19 Apr 04:36
Compare
Choose a tag to compare
  • a20b149: Fix asset compile watcher not detecting changes to source files in the root Assets/ directory
  • 2d6d989: Add scope for switch statement bodies
  • 2d6d989: Make array copies for in-place arithmetic operators less aggressive where possible
  • 3d2f301: Make error catching on unary operators more fine grained to avoid hiding other errors
  • 5b3ad94: Make creating a new script dirty the program asset
  • a679eed: Fix method overload scoring code that was causing some functions to not get chosen properly for a given set of parameter types
  • f46d5a0: Fix increment/decrement operators on lower precision types like byte, reported by @Foorack
  • f46d5a0: Fix switch conditions not converting numeric condition types to the correct condition type, reported by @Foorack

Bug fixes and prevent play mode on compile errors

13 Apr 22:02
Compare
Choose a tag to compare
  • 754b59b: Now prevent the user from entering play mode in editor if there are any compile errors in their U# scripts to imitate how Unity acts with normal C# scripts.
  • 754b59b: Add option to settings menu to only compile scripts when Unity is focused.
  • 06a70d3: Fix to allow empty statements such as while(conditionFunc()) ;, reported by @phi16
  • 06a70d3: Allow + prefix unary operator which is an identity operation that doesn't do anything, but can be used for code clarity, reported by @phi16
  • 06a70d3: Update an error about multidimensional and jagged arrays to be accurate to the current support for jagged arrays, but not multidimensional arrays. Reported by @phi16
  • 06a70d3: Fix to allow empty conditions on for loops
  • 06a70d3: Prevent compile from progressing if an error is hit while building class definitions, reported by @VowganDesign
  • 06a70d3: Add better coverage on errors for invalid name, and fix some cases where the name was not being propagated correctly, reported by @phi16

Minor features and bug fixes

12 Apr 02:44
Compare
Choose a tag to compare
  • e5c53f5: Add support for expression-bodied methods, reported by @naqtn
  • cd6b89b: Add support for NonSerialized field attribute, requested by AirGamer
  • 87e6bda: More strict class name replacement on U# template script creation, reported by Sacchan
  • a210e0e: Set public strings to an empty string instead of null to match Unity's behavior, reported by @TheHelpfulHelper

Reduce CPU usage in background

10 Apr 22:27
Compare
Choose a tag to compare
  • 5d442c4: Reduce CPU usage of AssetCompileWatcher while Unity is not focused. Reported by Sacchan

Bug fixes

10 Apr 09:06
Compare
Choose a tag to compare
  • d502c4a: Improve binary expression handling to not redundantly copy symbols that are constant since they cannot be modified.
  • 93b1ed0: Add UnityEngine.Object to to whitelist filter in exposure tree
  • 93b1ed0: Make the colors a little more readable on light theme for the exposure tree
  • fc2f279: Add explicit errors for using is and as in U# since Udon does not yet expose what's needed to implement them properly, reported by @Xiexe
  • a1d612e: Fix error when using script export on Udon Sharp Programs to Udon Assembly Programs on some types of heap symbol types, reported by 753
  • 7f01386: Improve error handling during compile to avoid getting stuck with the UdonBehaviour infinitely trying and failing to compile a behaviour in some cases, reported by Mimi

Fix switch statments not evaluating conditions correctly in some cases

09 Apr 01:43
Compare
Choose a tag to compare
  • 68009c7: Fix switch statements not evaluating conditions correctly when they need to evaluate an expression for the condition, reported by @ChrisFeline

Add default value revert button and add assembly program export

08 Apr 22:04
Compare
Choose a tag to compare
  • aa93829: Add button to revert public properties to their default value specified by their script. This only works on value type fields at the moment. The button is an arrow to the right of the property:
    reset buttons
  • e8e7ad3: Add support for exporting UdonSharpProgramAssets as UdonAssemblyProgramAssets so that you can export a program without needing U# as a dependency. This is intended for short and basic programs since the Udon assembly inspector is very lacking in its ability to draw public fields, and any updates to Udon's serialization are more likely to break these assets. In order to redistribute these packages you will need to include the assembly program this generates, as well as its serialized data asset that you can find by looking at the debug inspector for the assembly program.
    Export program button
  • 3670343: Handle binary expressions better to avoid unnecessary copies
  • c4a7191: Clean up the filesystem watchers more aggressively in attempt to avoid crashes that they may be causing
  • 8ffa1ca: Fix error when compiling all scripts and you have a program asset with an unassigned source file

Bug fixes

07 Apr 19:14
Compare
Choose a tag to compare
  • e059f61: Fix issue with binary expressions not handling their lhs value properly. The specific issue was that if you had a compound assignment or called a function from the right hand side of the expression which modified the value that the left hand side was using, the left hand side would use that modified value. Where it should've been using the unmodified value since the left hand side was evaluated first. Reported by @ureishi
  • 46342da: Fix with calling methods on array elements of user defined type arrays, reported by AirGamer

Add example and utility scripts, UI improvements, and bug fixes

06 Apr 22:49
Compare
Choose a tag to compare
  • 8462a4f, 5b859a8: Add example scripts for some common things
  • 36a29aa, e9c34d8: Add an inspector for UdonBehaviours that have an interact event
  • a1a83aa: Fix scroll height on class exposure tree
  • 8ee9832: Improve exposure tree readability on Unity's light theme
  • 4b52882: Fix IOExceptions when reading file from a slower HDD due to the filesystem taking longer than expected to release the file lock. Reported by @ChrisFeline, @Xiexe, and @synergiance
  • 8c39e36: Add error for attempting to declare a constructor since they are not supported yet
  • fad4ed8: Add error for attempting to use BitwiseNot ~ since Udon has not yet exposed it
  • 3e2ecd8: Fix for the RuntimeExceptionWatcher throwing exceptions if you don't have a VRChat data directory, reported by @VowganDesign

Fix bug in user type variable assignment

03 Apr 06:38
Compare
Choose a tag to compare
  • 4092443: Fix bug with assigning null to a user type field where the incorrect type of heap value would be assigned to the heap. This would cause the script to die in game since the user type doesn't exist in VRChat so Odin can't know how to deserialize it. Reported by @nnaaanachi