Migration to v0.4.0
Last updated
Last updated
Since version 0.4.0 UdonToolkit requires UdonSharp 0.18 and above!
Grab the and import that first!
Create a new empty scene and open it
Click File -> Save Project
Download the
Remove the UdonToolkit folder completely while you are in that test scene
Import the new UdonToolkit and wait for everything to compile
Open Edit
-> Project Settings
-> UdonSharp
and in the Default Behaviour Editor
select UdonToolkit Editor
Open your scene again and everything should work as expected
If you are using the CameraSystem - it is recommended to check that the Start Sphere
and all the Sphere
objects inside VR Controls
have Area Trigger
program assets assigned, unity seems to occasionally lose references to that particular asset
You will notice a Legacy
folder inside UdonToolkit now which hosts all the old controllers and the legacy editor
Starting with v0.4.0 you don't need controllers anymore, and you can use all the UdonToolkit's attributes directly in the U# code!
There are some small differences mainly centered around Udon's limited support for things like Enums and cases where you want to perform some complex editor logic.
All variables that you want to use UdonToolkit attributes with must have a
[UTEditor]
attribute on them that is last in the group
This is due to some limitations of unity PropertyDrawers that do not allow proper modifier stacking
If you want to execute editor only code in case of OnValueChanged, etc. you need to use directives
Basically the logic behind this is as follows: you should use #if !COMPILER_UDONSHARP && UNITY_EDITOR
if:
You want to work with methods and types not exposed to udon
You want to execute some logic in editor outside of playmode
In other cases - you should never need #if
around your attribute related code
More examples in the
It is pretty rare that you'll have to use #if
, but sometimes its unavoidable, especially when you want to use things like attribute.
As usual, check behaviours in the Misc
folder as a reference to how things should be built. is a good overall example.