ShockLaPod Games
New member
There seems to be a bug with the editor when displaying the Ragdoll ability drawer: specifically on line 37 of the RagdolllInspectorDrawer:
FieldInspectorView.AddFields(unityObject, target, Shared.Utility.MemberVisibility.Public, container, onChangeEvent, null, onValidateChange, false, null, true);
After showing the bold text, "Ragdoll" in the inspector, nothing is appearing:
This error seems to only be occurring with the "Ragdoll" ability.
Prior to this, I was fixing some other issues after using the Character Manager to configure my own character from the one in the Demo scene (the demo scene was pretty buggy too, but I assume that's due to it not being built for HDRP, so no biggy). Certain "Presets" in the Abilities and Item Abilities were not being copied over correctly, and were showing as either "Missing" or "None". I'm not sure if this is related to the error, but worth mentioning. I manually fixed all of these, but Ragdoll is the last one. Unfortunately, I cannot fix it due to this error in the editor. I have tried manually adding the UltimateCharacterLocomotion to an empty gameObject and adding the Ragdoll (as shown in the image above) to see if there was a difference, but no dice.
The full exception:
ArgumentException: Default value is not present in the list of possible values
UnityEngine.UIElements.PopupField`1[T]..ctor (System.String label, System.Collections.Generic.List`1[T] choices, System.String defaultValue, System.Func`2[T,TResult] formatSelectedValueCallback, System.Func`2[T,TResult] formatListItemCallback) (at <05f2afe6185f419bbdba66c4cec39481>:0)
UnityEngine.UIElements.PopupField`1[T]..ctor (System.Collections.Generic.List`1[T] choices, System.String defaultValue, System.Func`2[T,TResult] formatSelectedValueCallback, System.Func`2[T,TResult] formatListItemCallback) (at <05f2afe6185f419bbdba66c4cec39481>:0)
Opsive.Shared.Editor.UIElements.Controls.Attributes.LayerAttributeControl.GetControl (Opsive.Shared.Editor.UIElements.Controls.Attributes.AttributeControlBase+AttributeControlInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.Controls.Attributes.AttributeControlBase.GetAttributeControl (Opsive.Shared.Editor.UIElements.Controls.Attributes.AttributeControlBase+AttributeControlInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddAttributeControl (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, System.Int32 arrayIndex, System.String label, System.String tooltip, System.Boolean adjustLabelWidth, System.Object value, System.Action`2[T1,T2] onAddElement, System.Func`2[T,TResult] onChangeEvent, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddSingleField (Opsive.Shared.Editor.UIElements.FieldInspectorView+InspectorInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddField (Opsive.Shared.Editor.UIElements.FieldInspectorView+InspectorInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddField (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, UnityEditor.SerializedProperty serializedProperty, System.Action`2[T1,T2] onAddElement, System.Action`1[T] onChangeEvent, System.Func`3[T1,T2,TResult] onValidateChange, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, System.Action`2[T1,T2] onAddElement, System.Action`1[T] onChangeEvent, System.Func`3[T1,T2,TResult] onValidateChange, UnityEditor.SerializedProperty serializedProperty, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, UnityEngine.UIElements.VisualElement container, System.Action`1[T] onChangeEvent, UnityEditor.SerializedProperty serializedProperty, System.Func`3[T1,T2,TResult] onValidateChange, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.UltimateCharacterController.Editor.Controls.Types.AbilityDrawers.RagdollInspectorDrawer.CreateDrawer (UnityEngine.Object unityObject, System.Object target, UnityEngine.UIElements.VisualElement container, System.Func`3[T1,T2,TResult] onValidateChange, System.Action`1[T] onChangeEvent) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Controls/AbilityDrawers/RagdollDrawer.cs:37)
Opsive.UltimateCharacterController.Editor.Controls.Types.AbilityDrawers.AbilityControlType.GetHeaderControl (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, UnityEditor.SerializedProperty serializedProperty, System.Int32 arrayIndex, System.Type type, System.Object value, System.Func`2[T,TResult] onChangeEvent, System.Object userData) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Controls/AbilityDrawers/AbilityControl.cs:83)
Opsive.UltimateCharacterController.Editor.Controls.Types.StateObjectControlType.GetControl (Opsive.Shared.Editor.UIElements.Controls.Types.TypeControlBase+TypeControlInput input) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Controls/Types/StateObjectControl.cs:39)
Opsive.Shared.Editor.UIElements.Controls.Types.TypeControlBase.GetTypeControl (Opsive.Shared.Editor.UIElements.Controls.Types.TypeControlBase+TypeControlInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddTypeControl (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, UnityEditor.SerializedProperty serializedProperty, System.Int32 arrayIndex, System.Type type, System.String label, System.String tooltip, System.Boolean adjustLabelWidth, System.Object value, System.Boolean searchBaseTypes, System.Action`2[T1,T2] onAddElement, System.Func`2[T,TResult] onChangeEvent, System.Action onResizeEvent, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, System.Action`2[T1,T2] onAddElement, System.Action`1[T] onChangeEvent, System.Func`3[T1,T2,TResult] onValidateChange, UnityEditor.SerializedProperty serializedProperty, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, UnityEngine.UIElements.VisualElement container, System.Action`1[T] onChangeEvent, UnityEditor.SerializedProperty serializedProperty, System.Func`3[T1,T2,TResult] onValidateChange, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.UltimateCharacterController.Editor.Inspectors.Character.UltimateCharacterLocomotionInspector.ShowAbility (System.Boolean abilities, System.Int32 index) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Inspectors/Character/UltimateCharacterLocomotionInspector.cs:621)
Opsive.UltimateCharacterController.Editor.Inspectors.Character.UltimateCharacterLocomotionInspector+<>c__DisplayClass38_0.<AddAbilityList>b__3 (System.Int32 index) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Inspectors/Character/UltimateCharacterLocomotionInspector.cs:504)
Opsive.Shared.Editor.UIElements.ReorderableList.SelectItem (System.Int32 index) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.ReorderableList.set_SelectedIndex (System.Int32 value) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.UltimateCharacterController.Editor.Inspectors.Character.UltimateCharacterLocomotionInspector.AddAbility (System.Object obj) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Inspectors/Character/UltimateCharacterLocomotionInspector.cs:643)
UnityEditor.GenericMenu.CatchMenu (System.Object userData, System.String[] options, System.Int32 selected) (at <24e1ed8728684ea3ae446f80787d18de>:0)
My setup:
Unity version: 2022.3.31f1
Render pipeline: HDRP 14.0.10
Ultimate Character Controller version: 3.1
Moved folder location to: Assets/THIRD_PARTY_ASSETS
FieldInspectorView.AddFields(unityObject, target, Shared.Utility.MemberVisibility.Public, container, onChangeEvent, null, onValidateChange, false, null, true);
After showing the bold text, "Ragdoll" in the inspector, nothing is appearing:
This error seems to only be occurring with the "Ragdoll" ability.
Prior to this, I was fixing some other issues after using the Character Manager to configure my own character from the one in the Demo scene (the demo scene was pretty buggy too, but I assume that's due to it not being built for HDRP, so no biggy). Certain "Presets" in the Abilities and Item Abilities were not being copied over correctly, and were showing as either "Missing" or "None". I'm not sure if this is related to the error, but worth mentioning. I manually fixed all of these, but Ragdoll is the last one. Unfortunately, I cannot fix it due to this error in the editor. I have tried manually adding the UltimateCharacterLocomotion to an empty gameObject and adding the Ragdoll (as shown in the image above) to see if there was a difference, but no dice.
The full exception:
ArgumentException: Default value is not present in the list of possible values
UnityEngine.UIElements.PopupField`1[T]..ctor (System.String label, System.Collections.Generic.List`1[T] choices, System.String defaultValue, System.Func`2[T,TResult] formatSelectedValueCallback, System.Func`2[T,TResult] formatListItemCallback) (at <05f2afe6185f419bbdba66c4cec39481>:0)
UnityEngine.UIElements.PopupField`1[T]..ctor (System.Collections.Generic.List`1[T] choices, System.String defaultValue, System.Func`2[T,TResult] formatSelectedValueCallback, System.Func`2[T,TResult] formatListItemCallback) (at <05f2afe6185f419bbdba66c4cec39481>:0)
Opsive.Shared.Editor.UIElements.Controls.Attributes.LayerAttributeControl.GetControl (Opsive.Shared.Editor.UIElements.Controls.Attributes.AttributeControlBase+AttributeControlInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.Controls.Attributes.AttributeControlBase.GetAttributeControl (Opsive.Shared.Editor.UIElements.Controls.Attributes.AttributeControlBase+AttributeControlInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddAttributeControl (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, System.Int32 arrayIndex, System.String label, System.String tooltip, System.Boolean adjustLabelWidth, System.Object value, System.Action`2[T1,T2] onAddElement, System.Func`2[T,TResult] onChangeEvent, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddSingleField (Opsive.Shared.Editor.UIElements.FieldInspectorView+InspectorInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddField (Opsive.Shared.Editor.UIElements.FieldInspectorView+InspectorInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddField (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, UnityEditor.SerializedProperty serializedProperty, System.Action`2[T1,T2] onAddElement, System.Action`1[T] onChangeEvent, System.Func`3[T1,T2,TResult] onValidateChange, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, System.Action`2[T1,T2] onAddElement, System.Action`1[T] onChangeEvent, System.Func`3[T1,T2,TResult] onValidateChange, UnityEditor.SerializedProperty serializedProperty, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, UnityEngine.UIElements.VisualElement container, System.Action`1[T] onChangeEvent, UnityEditor.SerializedProperty serializedProperty, System.Func`3[T1,T2,TResult] onValidateChange, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.UltimateCharacterController.Editor.Controls.Types.AbilityDrawers.RagdollInspectorDrawer.CreateDrawer (UnityEngine.Object unityObject, System.Object target, UnityEngine.UIElements.VisualElement container, System.Func`3[T1,T2,TResult] onValidateChange, System.Action`1[T] onChangeEvent) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Controls/AbilityDrawers/RagdollDrawer.cs:37)
Opsive.UltimateCharacterController.Editor.Controls.Types.AbilityDrawers.AbilityControlType.GetHeaderControl (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, UnityEditor.SerializedProperty serializedProperty, System.Int32 arrayIndex, System.Type type, System.Object value, System.Func`2[T,TResult] onChangeEvent, System.Object userData) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Controls/AbilityDrawers/AbilityControl.cs:83)
Opsive.UltimateCharacterController.Editor.Controls.Types.StateObjectControlType.GetControl (Opsive.Shared.Editor.UIElements.Controls.Types.TypeControlBase+TypeControlInput input) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Controls/Types/StateObjectControl.cs:39)
Opsive.Shared.Editor.UIElements.Controls.Types.TypeControlBase.GetTypeControl (Opsive.Shared.Editor.UIElements.Controls.Types.TypeControlBase+TypeControlInput input) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddTypeControl (UnityEngine.Object unityObject, System.Object target, System.Reflection.FieldInfo field, UnityEditor.SerializedProperty serializedProperty, System.Int32 arrayIndex, System.Type type, System.String label, System.String tooltip, System.Boolean adjustLabelWidth, System.Object value, System.Boolean searchBaseTypes, System.Action`2[T1,T2] onAddElement, System.Func`2[T,TResult] onChangeEvent, System.Action onResizeEvent, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, System.Action`2[T1,T2] onAddElement, System.Action`1[T] onChangeEvent, System.Func`3[T1,T2,TResult] onValidateChange, UnityEditor.SerializedProperty serializedProperty, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.FieldInspectorView.AddFields (UnityEngine.Object unityObject, System.Object target, Opsive.Shared.Utility.MemberVisibility visibility, UnityEngine.UIElements.VisualElement container, System.Action`1[T] onChangeEvent, UnityEditor.SerializedProperty serializedProperty, System.Func`3[T1,T2,TResult] onValidateChange, System.Boolean searchBaseTypes, System.Action onResizeEvent, System.Boolean adjustLabelWidth, System.Collections.Generic.HashSet`1[T] ignoredFieldNames, System.Object userData) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.UltimateCharacterController.Editor.Inspectors.Character.UltimateCharacterLocomotionInspector.ShowAbility (System.Boolean abilities, System.Int32 index) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Inspectors/Character/UltimateCharacterLocomotionInspector.cs:621)
Opsive.UltimateCharacterController.Editor.Inspectors.Character.UltimateCharacterLocomotionInspector+<>c__DisplayClass38_0.<AddAbilityList>b__3 (System.Int32 index) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Inspectors/Character/UltimateCharacterLocomotionInspector.cs:504)
Opsive.Shared.Editor.UIElements.ReorderableList.SelectItem (System.Int32 index) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.Shared.Editor.UIElements.ReorderableList.set_SelectedIndex (System.Int32 value) (at <d96f8eec336a46ac9a2118208d76f915>:0)
Opsive.UltimateCharacterController.Editor.Inspectors.Character.UltimateCharacterLocomotionInspector.AddAbility (System.Object obj) (at Assets/THIRD_PARTY_ASSETS/Opsive/UltimateCharacterController/Editor/Inspectors/Character/UltimateCharacterLocomotionInspector.cs:643)
UnityEditor.GenericMenu.CatchMenu (System.Object userData, System.String[] options, System.Int32 selected) (at <24e1ed8728684ea3ae446f80787d18de>:0)
My setup:
Unity version: 2022.3.31f1
Render pipeline: HDRP 14.0.10
Ultimate Character Controller version: 3.1
Moved folder location to: Assets/THIRD_PARTY_ASSETS