Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Stack overflow when editing prefab containing splines
#1
Exclamation 
I'm getting this stack overflow when opening a prefab containing curvy splines

Code:
StackOverflowException: The requested operation caused a stack overflow.
UnityEngine.GameObject..ctor () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
UnityEngine.GameObject..ctor () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:47)
FluffyUnderware.DevTools.DTSingleton`1[T].Awake () (at Assets/Plugins/ToolBuddy/Dependencies/DevTools/Components/DTSingleton.cs:58)
FluffyUnderware.Curvy.CurvyGlobalManager.Awake () (at Assets/Plugins/ToolBuddy/Assets/Curvy/Scripts/Other Components/CurvyGlobalManager.cs:315)
UnityEngine.GameObject.AddComponent (System.Type componentType) (at <874d3e57e8754567b5753a47cbb1ae54>:0)
UnityEngine.GameObject.AddComponent[T] () (at <874d3e57e8754567b5753a47cbb1ae54>:0)
FluffyUnderware.DevTools.DTSingleton`1[T].get_Instance () (at Assets/Plugins/T<message truncated>


It's accompanied by many of these:
Code:
Allocation of 16 bytes at 000001975070F310

And 14 objects called "New Game Object" with a "Pool Manager" and an "Array Pool Settings" and "Curvy Global Manager".
Reply
#2
Hi
Can you give me reproduction steps or a reproduction case?
Thanks
Please consider leaving a review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.
Reply
#3
Ah, I think so? Our artists just followed this tutorial adding objects to the prefab in prefab editor mode.

https://youtu.be/eP6QEn9SFoM

Then when I checked out her changes and opened the prefab it started happening.

She noted that when she was adding splines to the prefab that it was modifying the open game scene in the background (creating your global manager singleton).

It doesn't seem feasible that we would add manager singleton to every prefab, and this is apparently required for editing the spline. I can see looking at the code that your singleton is trying to force creation of object the editor, succeeding, but failing to find it. The new singleton also calls `Instance` in its `Awake`. We do have the branch around if you need me to investigate more, but I don't expect to continue using this product at this time.

I don't think it's appropriate for an editor tool to make scene modifications during edit mode (unless it's using the correct hide flags: https://docs.unity3d.com/ScriptReference/Object-hideFlags.html).
Reply
#4
Hi

(11-30-2022, 05:35 AM)rhys_vdw Wrote: Ah, I think so? Our artists just followed this tutorial adding objects to the prefab in prefab editor mode.

https://youtu.be/eP6QEn9SFoM

Then when I checked out her changes and opened the prefab it started happening.

Thanks for the details, I managed to reproduce the issue. I tested the current LTS versions, and all but 2019LTS have the issue. The issue seems to be due to changes introduced in Unity post 2019LTS.

I will try to fix this issue, but until then I have a work around. I will come back to this later.

(11-30-2022, 05:35 AM)rhys_vdw Wrote: It doesn't seem feasible that we would add manager singleton to every prefab, and this is apparently required for editing the spline.

_CurvyGlobal_ is not expected to be part of every prefab. That object is created automatically in the scene when needed. I will even add: avoid including _CurvyGlobal_ in any prefab, except if it is unavoidable.

(11-30-2022, 05:35 AM)rhys_vdw Wrote: I don't think it's appropriate for an editor tool to make scene modifications during edit mode.

Noted. Personally I never thought of this as an issue, but I can see why this can be seen as innapropriate. I will try to fix this in the future.

(11-30-2022, 05:35 AM)rhys_vdw Wrote: (unless it's using the correct hide flags: https://docs.unity3d.com/ScriptReference/Object-hideFlags.html)

_CurvyGlobal_ can be automatically hidden (it sets it's hide flags to HideFlags.HideInHierarchy). To do so, please go to the Preferences menu*, and set Hide _CurvyGlobal_ to true:
https://curvyeditor.com/documentation/toolbar/preferences#hide_curvyglobal

*Preferences menu is available either through the Options/Preferences in Curvy's scene view toolbar, or Unity's Edit/Preferences/Curvy

When hiding _CurvyGlobal_, it is still saved to the scene. This object store some global objects needed by Curvy, like pools for example.

Now back to the workaround: to avoid the stack overflow, have a _CurvyGlobal_ object present in your scene while editing your prefab*. It's not perfect, but I don't think it is too restrictive. Is it? Please let me know of what you thought of it.

*Easiest way to do that: create an empty spiine then delete it. Or drop the prefab in the scene.

I hope this helped.

Have a nice day
Please consider leaving a review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.
Reply
#5
I came up with a modified code for singleton handling. It avoids the stack overflow. I still recommande to use the workaround above, since it does not rely on code that was written ten minutes ago and tested very little. I am sending you that code via PM

In a non distant future, I will look deeper into all the known issues regarding _CurvyGlobal_, most of which can be summarized to: find a singleton implementation that works properly with play mode, edit mode, prefab mode, multithreading, while supporting all the combinations of "Enter Play Mode Options" possible.
Please consider leaving a review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.
Reply
#6
A fix for this is now available in version 8.5.0. Thanks for your patience.
Please consider leaving a review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  snap to the curve created by the curvy splines segment points ShiroeYamamoto 1 2 Yesterday, 10:23 PM
Last Post: _Aka_
Bug Changing spline connection in inspector causes splines to revert to defaults lacota 3 6 03-18-2024, 07:55 PM
Last Post: _Aka_
  Using Unity's SplineContainer in Curvy Splines dlees9191 3 15 02-26-2024, 09:49 AM
Last Post: _Aka_
  Distance travelled across multiple splines jh092 1 7 02-23-2024, 09:44 AM
Last Post: _Aka_

Forum Jump: