What happens
Two related problems occur under certain conditions:
1) The "Use All Tracking Keys" checkbox works only at certain Inspector widths.
2) The left half of each field value does not respond to clicks when the Inspector is wide. See the attached image 1.
Conditions
This happens when the inspector of components placed below the VRCAvatarDescriptor assigns to
EditorGUIUtility.labelWidth
.
This typically happens when a component has some multi-value fields (Vector, Rect, Quaternion and others) or fields with a custom PropertyDrawer or DecoratorDrawer since Unity internal code for them assigns that, but custom inspector code can also do it.
In some cases, the issue does not occur even when these conditions are met, so there may be additional factors, such as Unity Editor internal timing or internal Inspector ordering.
I have not been able to find reliable reproduction steps. It seems most likely to happen right after adding such a component to the Avatar Root, but I don't know whether this always reproduces it.
Known components that meet this condition and are likely to be added to the Avatar Root:
  • All AAO: Avatar Optimizer components (PropertyDrawer)
  • VQT Avatar Converter Settings (PropertyDrawer)
  • MA Mesh Settings (multi-value field)
Components that also meet this condition but are unlikely to be added to the Avatar Root:
  • Unity Collider components (multi-value field)
Workarounds
a) Collapse inspector for components below VRCAvatarDescriptor. See the attached image 2.
b) Move the VRCAvatarDescriptor component to the bottom of the component list.
c) Click the horizontal position where checkboxes on other components are drawn, rather than the position where this checkbox is drawn. See the attached image 3.
d) Component inspector developers can prevent this problem by setting
EditorGUIUtility.labelWidth = 0;
after drawing their component. Note that this does not work in
PropertyDrawer
s, because Unity's internal code sets
EditorGUIUtility.labelWidth
after your
PropertyDrawer
runs [4].
Cause
VRCSDK 3.10.6 added
AvatarDescriptorEditor3.CreateInspectorGUI
, which simply wraps
OnInspectorGUI
in an
IMGUIContainer
, and this causes the problem.
When Unity creates its own
IMGUIContainer
for an inspector, it uses a closure that does many things before and after calling
OnInspectorGUI
[1].
The most important of these are
EditorGUIUtility.ResetGUIState();
[2] and
EditorGUIUtility.hierarchyMode = true;
[3].
The missing
ResetGUIState()
call causes the unclickable checkbox and the unresponsive left half of field values.
Additional Notes
VRCSDK 3.10.6 has problem that label area is narrower than that of other components.
The cause of this problem is the missing
hierarchyMode = true
.

Photo Viewer

View photos in a modal