Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Bug / Crash  Cannot make a rope with multiple control points
#1
Trying to setup a rope with variable thickness done by setting up multiple control points. Works in editor, until it doesn't. Can't really save it. Breaks the whole blueprint.
Obi 6.5.4
Unity 2021.3.22 & 2021.3.31
OS Ubuntu 20.04 & Windows 10



Quote:NullReferenceException: Object reference not set to an instance of an object
Unity.Collections.LowLevel.Unsafe.UnsafeUtility.WriteArrayElementWithStride[T] (System.Void* destination, System.Int32 index, System.Int32 stride, T value) (at /home/bokken/build/output/unity/unity/Runtime/Export/Unsafe/UnsafeUtilityPatched.cs:66)
Obi.ObiNativeList`1[T].set_Item (System.Int32 index, T value) (at Assets/ImportedAssets/Obi/Scripts/Common/DataStructures/NativeList/ObiNativeList.cs:64)
Obi.ObiActor.UpdateCollisionMaterials () (at Assets/ImportedAssets/Obi/Scripts/Common/Actors/ObiActor.cs:399)
Obi.ObiRope.SetupRuntimeConstraints () (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/Actors/ObiRope.cs:208)
Obi.ObiRope.OnValidate () (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/Actors/ObiRope.cs:178)
Quote:NullReferenceException: Object reference not set to an instance of an object
Unity.Collections.LowLevel.Unsafe.UnsafeUtility.WriteArrayElementWithStride[T] (System.Void* destination, System.Int32 index, System.Int32 stride, T value) (at /home/bokken/build/output/unity/unity/Runtime/Export/Unsafe/UnsafeUtilityPatched.cs:66)
Obi.ObiNativeList`1[T].set_Item (System.Int32 index, T value) (at Assets/ImportedAssets/Obi/Scripts/Common/DataStructures/NativeList/ObiNativeList.cs:64)
Obi.ObiActor.UpdateCollisionMaterials () (at Assets/ImportedAssets/Obi/Scripts/Common/Actors/ObiActor.cs:399)
Obi.ObiRope.SetupRuntimeConstraints () (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/Actors/ObiRope.cs:208)
Obi.ObiRope.OnValidate () (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/Actors/ObiRope.cs:178)
UnityEditor.SerializedObject:ApplyModifiedProperties(SerializedObject)
Obi.ObiRopeEditor:OnInspectorGUI() (at Assets/ImportedAssets/Obi/Editor/RopeAndRod/ObiRopeEditor.cs:124)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) (at /home/bokken/build/output/unity/unity/Modules/IMGUI/GUIUtility.cs:189)
Quote:NullReferenceException: Object reference not set to an instance of an object
Unity.Collections.LowLevel.Unsafe.UnsafeUtility.ReadArrayElementWithStride[T] (System.Void* source, System.Int32 index, System.Int32 stride) (at /home/bokken/build/output/unity/unity/Runtime/Export/Unsafe/UnsafeUtilityPatched.cs:54)
Obi.ObiNativeList`1[T].get_Item (System.Int32 index) (at Assets/ImportedAssets/Obi/Scripts/Common/DataStructures/NativeList/ObiNativeList.cs:60)
Obi.ObiActor.GetParticlePosition (System.Int32 solverIndex) (at Assets/ImportedAssets/Obi/Scripts/Common/Actors/ObiActor.cs:682)
Obi.ObiPathSmoother.PathFrameFromParticle (Obi.ObiRopeBase actor, Obi.ObiPathFrame& frame, System.Int32 particleIndex, System.Boolean interpolateOrientation) (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/DataStructures/Path/ObiPathSmoother.cs:125)
Obi.ObiPathSmoother.GenerateSmoothChunks (Obi.ObiRopeBase actor, System.UInt32 smoothingLevels) (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/DataStructures/Path/ObiPathSmoother.cs:177)
Obi.ObiPathSmoother.Actor_OnInterpolate (Obi.ObiActor actor) (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/DataStructures/Path/ObiPathSmoother.cs:62)
Obi.ObiActor.Interpolate () (at Assets/ImportedAssets/Obi/Scripts/Common/Actors/ObiActor.cs:1221)
Obi.ObiSolver.Interpolate (System.Single stepTime, System.Single unsimulatedTime) (at Assets/ImportedAssets/Obi/Scripts/Common/Solver/ObiSolver.cs:1670)
Obi.ObiUpdater.Interpolate (System.Single stepDeltaTime, System.Single accumulatedTime) (at Assets/ImportedAssets/Obi/Scripts/Common/Updaters/ObiUpdater.cs:132)
Obi.ObiFixedUpdater.Update () (at Assets/ImportedAssets/Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:66)
Quote:NullReferenceException: Object reference not set to an instance of an object
Obi.ObiRopeBlueprint+<Initialize>d__2.MoveNext () (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/Blueprints/ObiRopeBlueprint.cs:46)
Obi.ObiActorBlueprint+<Generate>d__59.MoveNext () (at Assets/ImportedAssets/Obi/Scripts/Common/Blueprints/ObiActorBlueprint.cs:282)
Obi.ObiActorBlueprint.GenerateImmediate () (at Assets/ImportedAssets/Obi/Scripts/Common/Blueprints/ObiActorBlueprint.cs:273)
UnityEngine.Events.InvokableCall.Invoke () (at /home/bokken/build/output/unity/unity/Runtime/Export/UnityEvent/UnityEvent.cs:178)
UnityEngine.Events.UnityEvent.Invoke () (at /home/bokken/build/output/unity/unity/Runtime/Export/UnityEvent/UnityEvent/UnityEvent_0.cs:58)
Obi.ObiPath.FlushEvents () (at Assets/ImportedAssets/Obi/Scripts/RopeAndRod/DataStructures/Path/ObiPath.cs:403)
Obi.ObiPathEditor.RemoveControlPointsMode (UnityEngine.Matrix4x4 matrix) (at Assets/ImportedAssets/Obi/Editor/RopeAndRod/ObiPathEditor.cs:195)
Obi.ObiPathEditor.OnToolGUI (UnityEditor.EditorWindow window) (at Assets/ImportedAssets/Obi/Editor/RopeAndRod/ObiPathEditor.cs:125)
UnityEditor.EditorTools.EditorToolManager.OnToolGUI (UnityEditor.EditorWindow window) (at /home/bokken/build/output/unity/unity/Editor/Mono/GUI/Tools/EditorToolManager.cs:454)
UnityEditor.SceneView.DefaultHandles () (at /home/bokken/build/output/unity/unity/Editor/Mono/SceneView/SceneView.cs:3156)
UnityEditor.SceneView.DoOnGUI () (at /home/bokken/build/output/unity/unity/Editor/Mono/SceneView/SceneView.cs:2414)
UnityEditor.SceneView.OnSceneGUI () (at /home/bokken/build/output/unity/unity/Editor/Mono/SceneView/SceneView.cs:2255)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:372)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:693)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:665)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:658)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:618)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:607)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:535)
UnityEngine.UIElements.EventDispatchUtilities.PropagateEvent (UnityEngine.UIElements.EventBase evt) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Events/IEventDispatchingStrategy.cs:113)
UnityEngine.UIElements.MouseEventDispatchingStrategy.SendEventToRegularTarget (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.BaseVisualElementPanel panel) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Events/MouseEventDispatchingStrategy.cs:35)
UnityEngine.UIElements.MouseEventDispatchingStrategy.SendEventToTarget (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.BaseVisualElementPanel panel) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Events/MouseEventDispatchingStrategy.cs:26)
UnityEngine.UIElements.MouseEventDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel iPanel) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Events/MouseEventDispatchingStrategy.cs:19)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:381)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:344)
UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:306)
UnityEngine.UIElements.EventDispatcher.OpenGate () (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:270)
UnityEngine.UIElements.EventDispatcherGate.Dispose () (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:75)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:372)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:222)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Panel.cs:420)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:468)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:211)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:74)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at /home/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:28)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at /home/bokken/build/output/unity/unity/Modules/IMGUI/GUIUtility.cs:189)
Reply
#2
(13-10-2023, 01:38 PM)uatihb Wrote: Trying to setup a rope with variable thickness done by setting up multiple control points.

Hi!

I'm unable to reproduce this, tested with Obi 6.5.4 / Unity 2021.3.22 / Windows 10.

Created a new rope blueprint, assigned it to a ObiRope component, entered path edit mode and created multiple new control points. Then adjusted their radius to produce a variable-thickness rope. It's a fairly transited workflow.

(13-10-2023, 01:38 PM)uatihb Wrote: Can't really save it.

Do you mean the blueprint? It should be automatically saved after making any changes, but if there’s an exception/error it probably is preventing the changes from being saved.

(13-10-2023, 01:38 PM)uatihb Wrote: Works in editor, until it doesn't.

Ok, could you detail the steps that lead to it ceasing to work? I’m afraid your report isn’t very clear to me, all I know so far is that this error happens when manipulating control points somehow, but never ran into something similar myself or had any similar reports in the past. Stress-testing the system by haphazardly adding/editing/removing control points did not take me anywhere, I’ll need some more specific directions.

kind regards,
Reply