Skip to content

Ink player crashes when selected TextAsset is deleted #214

@lgarczyn

Description

@lgarczyn

To reproduce:

Open ink player window
Set an asset in the field
Start playing the asset in the window
Delete the asset

What should happen:
The field is reset

What happens:

Ink Player crashes with a flood of errors:

Image
GUI Error: Invalid GUILayout state in InkPlayerWindow view. Verify that all layout Begin/End calls match
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
Parameter name: startIndex
System.String.Substring (System.Int32 startIndex, System.Int32 length) (at <c0b7b90d34a54066a7234dad69255116>:0)
System.String.Substring (System.Int32 startIndex) (at <c0b7b90d34a54066a7234dad69255116>:0)
Ink.UnityIntegration.InkEditorUtils.UnityRelativeToAbsolutePath (System.String filePath) (at Assets/External/Ink/Editor/Core/InkEditorUtils.cs:245)
Ink.UnityIntegration.InkPlayerWindow.DisplayHeader () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1188)
Ink.UnityIntegration.InkPlayerWindow.OnGUI () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1120)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect dockAreaRect) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.OldOnGUI () (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
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 <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

GUI Error: Invalid GUILayout state in InkPlayerWindow view. Verify that all layout Begin/End calls match
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
Parameter name: startIndex
System.String.Substring (System.Int32 startIndex, System.Int32 length) (at <c0b7b90d34a54066a7234dad69255116>:0)
System.String.Substring (System.Int32 startIndex) (at <c0b7b90d34a54066a7234dad69255116>:0)
Ink.UnityIntegration.InkEditorUtils.UnityRelativeToAbsolutePath (System.String filePath) (at Assets/External/Ink/Editor/Core/InkEditorUtils.cs:245)
Ink.UnityIntegration.InkPlayerWindow.DisplayHeader () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1188)
Ink.UnityIntegration.InkPlayerWindow.OnGUI () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1120)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect dockAreaRect) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.OldOnGUI () (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
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 <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.IMGUIContainer.DoIMGUIRepaint () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIR.RenderChainCommand.ExecuteNonDrawMesh (UnityEngine.UIElements.UIR.DrawParams drawParams, System.Single pixelsPerPoint, System.Exception& immediateException) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
Rethrow as ImmediateModeException
UnityEngine.UIElements.UIR.RenderChain.Render () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIRRepaintUpdater.Update () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase phase) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.Panel.UpdateForRepaint () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.Panel.Repaint (UnityEngine.Event e) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <574a6b83c2d440099e345550185555c4>:0)

GUI Error: Invalid GUILayout state in InkPlayerWindow view. Verify that all layout Begin/End calls match
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
Parameter name: startIndex
System.String.Substring (System.Int32 startIndex, System.Int32 length) (at <c0b7b90d34a54066a7234dad69255116>:0)
System.String.Substring (System.Int32 startIndex) (at <c0b7b90d34a54066a7234dad69255116>:0)
Ink.UnityIntegration.InkEditorUtils.UnityRelativeToAbsolutePath (System.String filePath) (at Assets/External/Ink/Editor/Core/InkEditorUtils.cs:245)
Ink.UnityIntegration.InkPlayerWindow.DisplayHeader () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1188)
Ink.UnityIntegration.InkPlayerWindow.OnGUI () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1120)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect dockAreaRect) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.OldOnGUI () (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
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 <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

GUI Error: Invalid GUILayout state in InkPlayerWindow view. Verify that all layout Begin/End calls match
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
Parameter name: startIndex
System.String.Substring (System.Int32 startIndex, System.Int32 length) (at <c0b7b90d34a54066a7234dad69255116>:0)
System.String.Substring (System.Int32 startIndex) (at <c0b7b90d34a54066a7234dad69255116>:0)
Ink.UnityIntegration.InkEditorUtils.UnityRelativeToAbsolutePath (System.String filePath) (at Assets/External/Ink/Editor/Core/InkEditorUtils.cs:245)
Ink.UnityIntegration.InkPlayerWindow.DisplayHeader () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1188)
Ink.UnityIntegration.InkPlayerWindow.OnGUI () (at Assets/External/Ink/Editor/Tools/Player Window/InkPlayerWindow.cs:1120)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect dockAreaRect) (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
UnityEditor.DockArea.OldOnGUI () (at <4f70cf68b8b24a78aa3a87c1d6120925>:0)
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 <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.IMGUIContainer.DoIMGUIRepaint () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIR.RenderChainCommand.ExecuteNonDrawMesh (UnityEngine.UIElements.UIR.DrawParams drawParams, System.Single pixelsPerPoint, System.Exception& immediateException) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
Rethrow as ImmediateModeException
UnityEngine.UIElements.UIR.RenderChain.Render () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIRRepaintUpdater.Update () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase phase) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.Panel.UpdateForRepaint () (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.Panel.Repaint (UnityEngine.Event e) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <02b90f1c0dfb49a1adfd6da071d5b611>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <574a6b83c2d440099e345550185555c4>:0)

Re-opening the window does not fix the issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions