Releases: MerlinVR/UdonSharp
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
Bug fixes
- 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
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
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
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
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
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
, andVRCUrl
-
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
- 2fde898: Add support for OnStationEntered/OnStationExited events with a player api argument, see https://github.com/Merlin-san/UdonSharp/wiki/Using-VRC-Stations
Fix issue with variable drawing introduced by latest VRCSDK
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
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.