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

06 Oct 03:35
Compare
Choose a tag to compare
  • f1e3ebf: Fix editor scripting GetComponent analogues, reported by @Takato65 #57
  • 7087ad4: Fix SendCustomEvent getting fired in the editor on proxy behaviours incorrectly when sent from animation events, reported by @ikuko #58
  • 83da7a3: Add filtering to log forwarding for commonly spammed log messages that aren't useful for debugging

Add support for OnVideoError arg

25 Sep 22:17
Compare
Choose a tag to compare

This release requires the latest VRCSDK

  • a9b55f4: Add support for OnVideoError VideoError argument, if you have a video player that uses OnVideoError you will need to update the event to include the argument. USharpVideo has been updated for this release.
  • e24e339: Fix a compile warning

Bug fixes

24 Sep 01:08
Compare
Choose a tag to compare

Features

  • 8190e2d: Add support for dragging UdonBehaviour references into Unity object fields for UdonSharpBehaviours on inspectors

Fixes

  • 686b7bc: Fix object field search to only find the correct UdonSharpBehaviour type instead of finding all UdonBehaviours
  • 88e2aec: Fix auto creation of UdonSharpProgramAssets when using the Convert to UdonBehaviour button and no program asset exists, reported by M.O.O.N and ReadyPlayerEmma
  • ae1ab6d: Prevent some cases where custom inspectors could potentially reset UdonBehaviour states
  • 962fbed: Fix assembly asset export, reported by @Aomeee
  • 7f50cc5: Improve handling for Undo recording
  • 4e78911: Fix jagged array initializers on some array types not working, reported by EvolvedAnt
  • f7dbc21: Prevent OnEnable, OnDisable, and OnDestroy from firing on proxies

VRChat video player and player collision support

18 Sep 19:18
Compare
Choose a tag to compare

This update supports the new features in the latest release of VRChat for video players and player collision handling
You must update to the newest VRCSDK to use this release

Features

  • Support for video player events and types
  • Support for new player collision and trigger events (OnPlayerTriggerEnter, OnPlayerTriggerExit, OnPlayerCollisionEnter, etc)

Fixes

  • 47f82f2: Fix handling on prefab instances with custom inspectors to record changes to the prefab instances correctly, reported by PhaseDragon

Bug fixes & add Easy Event Editor

10 Sep 02:59
Compare
Choose a tag to compare

You will need to delete your old Assets/UdonSharp directory before installing this if upgrading from a version < 0.18.0 to prevent compile errors when upgrading
Make sure you have the latest VRCSDK installed
Use the openbeta package with the open beta SDK only

Changes:

  • fc106b2: Proxy updates and writes will now only affect the proxy you call them on by default. If you had editor scripts that used the proxy update/copy methods that relied on recursive updates, you will need to update those calls to use ProxySerializationPolicy.All. I wanted to change this behavior of the API before people started getting deep into it, and it became apparent that people would be confused by the default behavior of recursive copying.

Features:

  • 5329d13: Now includes Easy Event Editor bundled with U# if you have Easy Event Editor installed already, you will need to delete the old installation. This version has fixes for helping get rid of confusing behavior when dealing with proxies of UdonSharpBehaviours on an object.

Fixes:

  • 0fe0424: Fix regression where public references to UdonBehaviours, Transforms, and GameObjects that were left null would be populated by their respective self reference. They now remain null again. Reported by @zhakamizhako
  • ea0bb98: Fix Unity events getting fired on proxy behaviours, reported by @orels1
  • 192caa4: Improve variable updating to handle arrays better and be more lenient with type conversions
  • 0fe0424: Fix the source file cache not being updated in some cases
  • 5164840: Fix redundant builds when entering play mode after scripts are already up to date
  • 56b1da5: Early out of file read when a file doesn't exist
  • 7f763bf: Fix the debug log watcher not initializing without an assembly reload
  • 4e19340: Make the dropdown setting on the utility menu in UdonSharpBehaviour inspectors persist.
  • a6ba959: Make compiler detect when source files have changed during compile to trigger another compile correctly
  • a4709c2: Fix a null reference exception when an UdonBehaviour that is referenced in a custom inspector gets destroyed elsewhere
  • 600c574: Fix performance on script type lookup which was a bottleneck when creating new UdonSharpBehaviours
  • a525ab5: Add an error for when a script file referenced by an UdonSharpProgramAsset does not have a valid class defined

Editor Scripting Update

04 Sep 05:43
2f13b8d
Compare
Choose a tag to compare

You will need to delete your old Assets/UdonSharp directory before installing this to prevent compile errors when upgrading
Also make sure you have the latest VRCSDK installed
Use the openbeta package with the open beta SDK only

v0.18.0 adds an editor scripting API that allows the creation of custom inspectors for UdonSharpBehaviours and editor scripts for automating setup of complex prefabs. This update also brings many other bug fixes and improvements.

Features:

  • An editor scripting API that mirrors changes to UdonBehaviours to a C# version of the behaviour. See the wiki page on Editor Scripting to learn more about how to use it. This also allows you to use Unity's Handles API and gizmos:

  • Adds a runtime log watcher which forwards logs from in-game to the editor log, this can be enabled in the Udon Sharp settings menu. You can either forward all logs, or forward logs with only a specified prefix. The client that the log message came from will have the account name logged. Names are colored to differentiate between different clients in local testing.

  • The default inspector now takes a much smaller footprint. The Compile All UdonSharp Programs button has been moved to the Utilities dropdown. And program asset specific interface elements such as the assembly viewer and Export to Assembly Asset buttons have been moved to the program asset inspector.

  • Conditional compilation based on project preprocessor symbols now works. This also means you can check for UNITY_EDITOR to determine if this is a client build or editor build. #33

  • Optimize the compiler more, now ~20% faster in some cases

  • Handling for more variable types in the default inspector have been added for uint, long, byte, sbyte, short, ushort, char, and VRCUrl

  • Debug info and generated uasm are now stored in the Library as cache files. This prevents UdonSharpProgramAssets from being modified in most cases which prevents unneeded changes on version control commits.

  • File contents are now hashed and compiles only take place if a source file has changed or if you click the compile all programs button.

  • Automatically converts properties on UdonSharpBehaviours when converting from the C# version of a script to the UdonBehaviour version

  • Field initializers on jagged arrays are now supported

Fixes:

  • U# compiles are now triggered when you import an UdonSharpProgramAsset. This means that you don't need to tell U# to compile scripts after importing prefabs now. #51

  • Fix cases where serialized variables on behaviours would go out of date if their type changed or if they were removed. This caused a lot of strange issues for people. Variables will now attempt to convert type, and if they fail to convert they will be set to the default value. This will also make sure all UdonBehaviours assigned to UdonSharpBehaviour fields are of the correct types.

  • Make the binding phase give a proper line number when an error occurs instead of always saying the error is on line 1 of a file.

  • Add explicit errors about attempts to use static using statements or namespace aliases

  • Fix editor behaviour exceptions not getting logged with line number if client exception watching is disabled

  • Add error message for when runtime exception watching is enabled, but --enable-udon-debug-logging is not enabled.

  • Fix ternery operator not propagating user types properly

  • Fix Set/GetProgramVariable calls on the current behaviour needing this.GetProgramVariable to work

  • Fix debug line offset being incorrect in switch statements

  • New scripts created via the create U# script UI are now encoded in UTF8 by default since some editors do not convert the file type which was causing encoding issues with Japanese text

  • Make inspector UI refresh immediately after compile to show modified fields

  • Make inspector UI always refresh in play mode to keep up to date with runtime field changes

Allow station events to receive player api arguments

28 Jul 02:23
Compare
Choose a tag to compare

Fix issue with variable drawing introduced by latest VRCSDK

20 Jul 17:16
Compare
Choose a tag to compare

This requires the latest VRCSDK https://files.vrchat.cloud/sdk/VRCSDK3-WORLD-2020.08.07.18.18_Public.unitypackage

  • fd0a5a1: Fix bug introduced by latest VRCSDK that prevented setting reference values to null in the inspector, reported by BlueBeaver

Add build check to prevent assembly corruption

17 Jul 00:28
48b0fc9
Compare
Choose a tag to compare

This release requires new callbacks introduced in the latest Udon VRCSDK so you must update to the latest VRCSDK before installing this release: https://files.vrchat.cloud/sdk/VRCSDK3-WORLD-2020.08.07.18.18_Public.unitypackage

If you don't want an error that cancels the build when scripts need to compile, try enabling the Force compile on upload option in the Udon Sharp settings menu which will force Unity to synchronously compile C# scripts before doing a build.

  • #42: Prevents Unity from corrupting your assemblies when you upload a world before Unity has had a chance to compile C# scripts with changed serialized variables.
  • 3d37c8d: Do not throw errors for exception watcher when on a computer that does not have VRChat installed, reported by @orels1 #50

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