Software Versions:
-
VRChat Creator Companion: Latest Version (as of Sep 2025)
-
Unity Editor: 2022.3.22f1 (Installed via VRChat Creator Companion)
-
Visual Studio: 2022 Community (Installed with “Game development with Unity” workload)
-
VRChat Worlds SDK: Version provided with the VCC new project template
Summary of Bug
On a completely fresh installation of the VRChat development environment (VCC, Unity, VS) on multiple, independent machines, the Unity Editor fails to correctly display UdonSharp script components. Although the UdonSharp compiler reports a successful compilation in the console, the Inspector window does not update to show the script’s public variables. This makes it impossible to assign scene objects to script variables, fundamentally blocking the standard UdonSharp development workflow.
Steps to Reproduce (STR)
This bug is 100% reproducible on a clean system by following these steps:
-
Perform a clean installation of the VRChat Creator Companion, the recommended Unity Editor (2022.3.22f1), and Visual Studio 2022 with the Unity workload.
-
Using the VCC, create a brand-new “Udon Sharp” project.
-
Open the new project in Unity.
-
In the
Assetsfolder, create a new subfolder namedScripts. -
Inside the
Scriptsfolder, right-click and selectCreate > VRChat > Udon > Udon C# Program Asset. -
Name the new asset
TestScript. -
At this point, the first issue occurs: Double-clicking the
TestScript.assetfile does nothing. It does not open Visual Studio as expected. -
To proceed, a manual workaround is required: a. Create a separate, plain
C# ScriptnamedTestScript_Source.cs. b. Select theTestScript.assetfile. In its Inspector, dragTestScript_Source.csinto theSource Scriptfield to manually link them. c. Open the project in Visual Studio using the top menuAssets > Open C# Project. d. OpenTestScript_Source.csand replace its contents with simple test code containing a public variable:using UdonSharp; using UnityEngine; public class TestScript_Source : UdonSharpBehaviour { public GameObject testObject; }e. Save the script in Visual Studio and return to Unity.
-
Select the
TestScript.assetfile again and observe the Inspector.
Expected Behavior
After the script is saved and Unity recompiles, the Inspector for TestScript.asset should update. It should display a header of Test Script (Udon C#) and show the public variable testObject as a field, ready for a GameObject to be assigned.
Actual Behavior
The Unity console correctly logs a success message (e.g., [UdonSharp] Compile of X scripts finished). However, the Inspector for TestScript.asset does not update. It remains in the default, uncompiled state, showing the “Compile All UdonSharp Programs” button. The public testObject variable is never displayed. Clicking the “Compile” button also does nothing to change the Inspector’s state, even though the console reports another successful compile.
This behavior makes it impossible to assign scene references to scripts, blocking all non-trivial world development.
Troubleshooting Performed
The following steps were taken to try and resolve the issue, none of which were successful:
-
Verified and re-set the External Script Editor in
Edit > Preferences. -
Regenerated C# project files multiple times.
-
Installed, uninstalled, and updated the “Visual Studio Editor” package via the Package Manager.
-
Forced full recompiles via
VRChat SDK > UdonSharp > Force Full Recompile. -
Completely deleted the project’s
Libraryfolder to force a full re-import. -
Performed a complete uninstall and reinstall of Unity, Unity Hub, Visual Studio, and the VRChat Creator Companion.
-
Crucially, this entire bug was successfully and independently reproduced on a second, separate computer by a different user, following the same clean installation and STR.
Impact
This is a critical, workflow-blocking bug. It prevents the primary intended method of UdonSharp development from functioning. Any user encountering this issue on a fresh installation will be completely unable to create interactive worlds that require linking scene objects to scripts.