Minimum Reproducible Steps
- Import the following packages and their dependencies:
com.vrchat.worlds-3.7.6
com.vrchat.base-3.7.6
com.vrchat.core.vpm-resolver-0.1.29
idv.jlchntoz.vvmw-1.4.4
idv.jlchntoz.vrcw-foundation-0.0.25
at.pimaker.ltcgi
- Add a
VVMW (On-Screen Controls) to the scene.
- Add a
LTCGI Controller to the scene.
- Navigate to the
LTCGI_Controller component. VizVid is detected and the auto-configuration button is available.
- Create a new C# script under the path
Assets/Plugins/Editor/.
- Navigate to the
LTCGI_Controller component again. VizVid is NO longer detected and the auto-configuration button is NOT available.
Expected Behaviour
VizVid should still be detected and the auto-configuration button should remain available, even after creating the script in Assets/Plugins/Editor/.
Note: The path of my real case script is Assets/Plugins/TextToTMP/Editor/*.cs.
Analysis
The issue occurs when LTCGI_ControllerAutoSetup.cs executes the List<ILTCGI_AutoSetup> Wizards getter method. It traverses all assemblies and finds the first assembly containing Assembly-CSharp-Editor in its name, then retrieves valid ILTCGI_AutoSetup implementations to create the list of supported auto-configurations.
However, when C# scripts are present in Assets/Plugins/Editor/, Unity generates two assemblies with Assembly-CSharp-Editor in their names: Assembly-CSharp-Editor-firstpass and Assembly-CSharp-Editor. The Assembly-CSharp-Editor-firstpass assembly is prioritised during the traversal and is getting resolved. Unfortunately, VizVid’s ILTCGI_AutoSetup implementation (VizVidLTCGIAutoSetupProxy) is located in Assets/_pi_/_LTCGI-Adapters/Editor/ and is not compiled into Assembly-CSharp-Editor-firstpass, making it impossible to be resolved.
Expected Behaviour
Both Assembly-CSharp-Editor-firstpass and Assembly-CSharp-Editor assemblies should be resolved for valid ILTCGI_AutoSetup implementations.
Minimum Reproducible Steps
com.vrchat.worlds-3.7.6com.vrchat.base-3.7.6com.vrchat.core.vpm-resolver-0.1.29idv.jlchntoz.vvmw-1.4.4idv.jlchntoz.vrcw-foundation-0.0.25at.pimaker.ltcgiVVMW (On-Screen Controls)to the scene.LTCGI Controllerto the scene.LTCGI_Controllercomponent. VizVid is detected and the auto-configuration button is available.Assets/Plugins/Editor/.LTCGI_Controllercomponent again. VizVid is NO longer detected and the auto-configuration button is NOT available.Expected Behaviour
VizVid should still be detected and the auto-configuration button should remain available, even after creating the script in
Assets/Plugins/Editor/.Note: The path of my real case script is
Assets/Plugins/TextToTMP/Editor/*.cs.Analysis
The issue occurs when
LTCGI_ControllerAutoSetup.csexecutes theList<ILTCGI_AutoSetup> Wizardsgetter method. It traverses all assemblies and finds the first assembly containingAssembly-CSharp-Editorin its name, then retrieves validILTCGI_AutoSetupimplementations to create the list of supported auto-configurations.However, when C# scripts are present in
Assets/Plugins/Editor/, Unity generates two assemblies withAssembly-CSharp-Editorin their names:Assembly-CSharp-Editor-firstpassandAssembly-CSharp-Editor. TheAssembly-CSharp-Editor-firstpassassembly is prioritised during the traversal and is getting resolved. Unfortunately, VizVid’sILTCGI_AutoSetupimplementation (VizVidLTCGIAutoSetupProxy) is located inAssets/_pi_/_LTCGI-Adapters/Editor/and is not compiled intoAssembly-CSharp-Editor-firstpass, making it impossible to be resolved.Expected Behaviour
Both
Assembly-CSharp-Editor-firstpassandAssembly-CSharp-Editorassemblies should be resolved for validILTCGI_AutoSetupimplementations.