Enter the forum description here ...
+12
Fixed

Unable to use Peek with 2019.3.10

Crystalius 10 months ago updated by Daniel 8 months ago 12

MissingMemberException: Member 'UnityEditor.EditorWindow.ShowModal' not found.

Ludiq.LudiqGUIUtility..cctor () (at <75479a292f634cecafcc6d9c858e3997>:0)

Rethrow as UnityEditorInternalException: An error occured while accessing internal Unity Editor functions. This might happen if Unity makes backward-incompatible changes in their newer versions of the editor.

Ludiq.LudiqGUIUtility..cctor () (at <75479a292f634cecafcc6d9c858e3997>:0)

Rethrow as TypeInitializationException: The type initializer for 'Ludiq.LudiqGUIUtility' threw an exception.

Ludiq.AssemblyResourceProvider.LoadTexture (System.String path, Ludiq.CreateTextureOptions options) (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.EditorTexture.Load (Ludiq.IResourceProvider resources, System.String path, Ludiq.TextureResolution[] resolutions, Ludiq.CreateTextureOptions options, System.Boolean required) (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.EditorTexture.Load (System.Collections.Generic.IEnumerable`1[T] resourceProviders, System.String path, Ludiq.TextureResolution[] resolutions, Ludiq.CreateTextureOptions options, System.Boolean required) (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.PluginResources.LoadIcon (System.String path, System.Boolean required) (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.LanguageIconSet.LoadAccessibility (System.String name, System.Boolean required) (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.LanguageIconSet..ctor (System.String name) (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.LanguageIconSet.Load (System.String name) (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.Icons+Language.Load () (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.Icons.Load () (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.Icons..cctor () (at <75479a292f634cecafcc6d9c858e3997>:0)

Rethrow as TypeInitializationException: The type initializer for 'Ludiq.Icons' threw an exception.

System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor (System.RuntimeTypeHandle type) (at <437ba245d8404784b9fbab9b439ac908>:0)

Ludiq.PluginContainer.Initialize () (at <75479a292f634cecafcc6d9c858e3997>:0)

Ludiq.PluginContainer..cctor () (at <75479a292f634cecafcc6d9c858e3997>:0)

Rethrow as TypeInitializationException: The type initializer for 'Ludiq.PluginContainer' threw an exception.

Ludiq.GraphWindow.OnGUI () (at :0)

System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)

Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.

System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)

System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <437ba245d8404784b9fbab9b439ac908>:0)

UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at <17b72532ee2c4da1b6f632d3f1705fe0>:0)

UnityEditor.HostView.Invoke (System.String methodName) (at <17b72532ee2c4da1b6f632d3f1705fe0>:0)

UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <17b72532ee2c4da1b6f632d3f1705fe0>:0)

UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <17b72532ee2c4da1b6f632d3f1705fe0>:0)

UnityEditor.DockArea.OldOnGUI () (at <17b72532ee2c4da1b6f632d3f1705fe0>: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 <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.IMGUIContainer.DoIMGUIRepaint () (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.UIR.RenderChainCommand.ExecuteNonDrawMesh (UnityEngine.UIElements.UIR.DrawParams drawParams, System.Boolean straightY, System.Single pixelsPerPoint, System.Exception& immediateException) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

Rethrow as ImmediateModeException

UnityEngine.UIElements.UIR.RenderChain.Render (UnityEngine.Rect viewport, UnityEngine.Matrix4x4 projection, UnityEngine.UIElements.PanelClearFlags clearFlags) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.UIRRepaintUpdater.DrawChain (UnityEngine.Rect viewport, UnityEngine.Matrix4x4 projection) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.UIRRepaintUpdater.Update () (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase phase) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.Panel.UpdateForRepaint () (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.Panel.Repaint (UnityEngine.Event e) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <7be1a95b44f5474c9c1a5c5fd9c86b28>:0)

UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <35bab3c7b0dc4999845bcfccc7758d96>:0)

+5
Planned

Move to Existing Group

Leonardo 5 months ago updated 4 months ago 3

Creating groups and moving selected objects to the created group works great now but it would be even better if you can move objects to an already existing group. 

Ideally, you would use the same hotkey as create group, but instead of just creating a brand new group, it will give you an option to either move the selected object(s) to an existing group (created with peek) or create a brand new group. This is similar to how Blender collections work.

+4

Global Disable Hotkey

homemech 9 months ago updated by William Attaway 2 months ago 1

Feature request from Discord to have a global disable for all of Peek. Perhaps a toggle in the preferences to choose whether the "b" key disables all of Peek or just the toolbars? Had a recent Discord discussion on control+shift being a useful Unity shortcut for vertex-on-surface game object snapping, this might help with that. 

+3
Fixed

Shortcut not available. You are pushing more GUIClips than you are popping.

TrooperAdvert 4 months ago updated by Lazlo Bonin (Lead Developer) 4 months ago 4

Hi, I've just downloaded and imported into the existing 2d project to give a try Peek tool.

Unfortunately, first what I saw were those errors:

Stacktrace:

[Exception] ArgumentException: Shortcut not available
ShortcutManagerImplementation.GetShortcutBinding() at :0

ToolbarControl.GetShortcutLabel() at /Ludiq/Ludiq.Peek/Editor/Toolbars/ToolbarControl.cs:346
344: {
345: #if UNITY_2019_1_OR_NEWER
-->346: var mapping = ShortcutManager.instance.GetShortcutBinding($"Peek/{(primary ? "Primary" : "Secondary")} Toolbar {index}");
348: if (!mapping.keyCombinationSequence.Any())

ToolbarControl.DrawInSceneView() at /Ludiq/Ludiq.Peek/Editor/Toolbars/ToolbarControl.cs:470
468: {
469: toolControl.shortcutIndex = shortcutIndex % 10;
-->470: toolControl.shortcutLabel = GetShortcutLabel(shortcutIndex, hasPrimaryShortcuts);
471: toolControl.shortcutModifiers = GetShortcutModifiers(shortcutIndex, hasPrimaryShortcuts);
472: shortcutIndex++;

Tabs.OnSceneGUI() at /Ludiq/Ludiq.Peek/Editor/Tabs/Tabs.cs:250
248: }
-->250: toolbarControl.DrawInSceneView();
252: if (!reopenedTabs)

SceneViewIntegration.OnSceneGUI() at /Ludiq/Ludiq.Peek/Editor/Integration/SceneViewIntegration.cs:37
35: used = false;
-->37: Tabs.OnSceneGUI(sceneView);
39: SceneToolbars.OnSceneGUI(sceneView);

SceneView.CallOnSceneGUI() at :0

SceneView.HandleSelectionAndOnSceneGUI() at :0

SceneView.OnGUI() at :0

MonoMethod.Invoke() at :0

MonoMethod.Invoke() at :0

MethodBase.Invoke() at :0

HostView.Invoke() at :0

HostView.Invoke() at :0

HostView.InvokeOnGUI() at :0

MaximizedHostView.OldOnGUI() at :0

IMGUIContainer.DoOnGUI() at <78b213560771414e9fa6f1b95f5ad8bb>:0

IMGUIContainer.HandleIMGUIEvent() at <78b213560771414e9fa6f1b95f5ad8bb>:0

IMGUIContainer.DoIMGUIRepaint() at <78b213560771414e9fa6f1b95f5ad8bb>:0

RenderChainCommand.ExecuteNonDrawMesh() at <78b213560771414e9fa6f1b95f5ad8bb>:0

RenderChain.Render() at <78b213560771414e9fa6f1b95f5ad8bb>:0

UIRRepaintUpdater.DrawChain() at <78b213560771414e9fa6f1b95f5ad8bb>:0

UIRRepaintUpdater.Update() at <78b213560771414e9fa6f1b95f5ad8bb>:0

VisualTreeUpdater.UpdateVisualTreePhase() at <78b213560771414e9fa6f1b95f5ad8bb>:0

Panel.UpdateForRepaint() at <78b213560771414e9fa6f1b95f5ad8bb>:0

Panel.Repaint() at <78b213560771414e9fa6f1b95f5ad8bb>:0

UIElementsUtility.DoDispatch() at <78b213560771414e9fa6f1b95f5ad8bb>:0

UIElementsUtility.ProcessEvent() at <78b213560771414e9fa6f1b95f5ad8bb>:0

GUIUtility.ProcessEvent() at <819de1aa368e45faa4f78e26c97c62b0>:0


Second one:
[Exception] ArgumentException: Shortcut not available
ShortcutManagerImplementation.GetShortcutBinding() at :0

ToolbarControl.GetShortcutLabel() at /Ludiq/Ludiq.Peek/Editor/Toolbars/ToolbarControl.cs:346
344: {
345: #if UNITY_2019_1_OR_NEWER
-->346: var mapping = ShortcutManager.instance.GetShortcutBinding($"Peek/{(primary ? "Primary" : "Secondary")} Toolbar {index}");
348: if (!mapping.keyCombinationSequence.Any())

ToolbarControl.DrawInSceneView() at /Ludiq/Ludiq.Peek/Editor/Toolbars/ToolbarControl.cs:470
468: {
469: toolControl.shortcutIndex = shortcutIndex % 10;
-->470: toolControl.shortcutLabel = GetShortcutLabel(shortcutIndex, hasPrimaryShortcuts);
471: toolControl.shortcutModifiers = GetShortcutModifiers(shortcutIndex, hasPrimaryShortcuts);
472: shortcutIndex++;

Tabs.OnSceneGUI() at /Ludiq/Ludiq.Peek/Editor/Tabs/Tabs.cs:250
248: }
-->250: toolbarControl.DrawInSceneView();
252: if (!reopenedTabs)

SceneViewIntegration.OnSceneGUI() at /Ludiq/Ludiq.Peek/Editor/Integration/SceneViewIntegration.cs:37
35: used = false;
-->37: Tabs.OnSceneGUI(sceneView);
39: SceneToolbars.OnSceneGUI(sceneView);

SceneView.CallOnSceneGUI() at :0

SceneView.HandleSelectionAndOnSceneGUI() at :0

SceneView.OnGUI() at :0

MonoMethod.Invoke() at :0

MonoMethod.Invoke() at :0

MethodBase.Invoke() at :0

HostView.Invoke() at :0

HostView.Invoke() at :0

HostView.InvokeOnGUI() at :0

MaximizedHostView.OldOnGUI() at :0

IMGUIContainer.DoOnGUI() at <78b213560771414e9fa6f1b95f5ad8bb>:0

Waiting for response :)

+2
Not a Bug

Cannot open two instances of the Fuzzy window at once

Andrew Scott 9 months ago updated 4 months ago 14

So I am in 2D, created a Grid of Game Objects with children (10x10) and then created a prefab of one of these. Made no changes to the prefab, if that matters and then selected all 100 of those game Objects, then proceeded to replace the normal game objects with the prefab.

Now while it worked, I got 99 errors in the console saying

InvalidOperationException: Cannot open two instances of the fuzzy window at once.
Ludiq.PeekCore.FuzzyWindow.Show (UnityEngine.Rect activatorPosition, Ludiq.PeekCore.IFuzzyOptionTree optionTree, System.Action`1[T] callback) (at Assets/Ludiq/Ludiq.PeekCore/Editor/Interface/Fuzzy/FuzzyWindow.cs:299)
Ludiq.PeekCore.LudiqGUI.FuzzyDropdown (UnityEngine.Rect activatorPosition, Ludiq.PeekCore.IFuzzyOptionTree optionTree, System.Object selected, System.Action`1[T] callback) (at Assets/Ludiq/Ludiq.PeekCore/Editor/Interface/LudiqGUI.cs:2512)
Ludiq.Peek.Replacer.Open (UnityEngine.GameObject[] targets, UnityEngine.Rect activatorPosition) (at Assets/Ludiq/Ludiq.Peek/Editor/Creator/Replacer.cs:24)
Ludiq.Peek.GameObjectOperations.Replace (UnityEngine.GameObject[] targets, UnityEngine.Rect activatorPosition) (at Assets/Ludiq/Ludiq.Peek/Editor/Context/GameObjectOperations.cs:145)
Ludiq.Peek.CreatorMenuIntegration+<>c__DisplayClass9_0.b__0 () (at Assets/Ludiq/Ludiq.Peek/Editor/Creator/CreatorMenuIntegration.cs:76)
Ludiq.Peek.GuiCallback.Process () (at Assets/Ludiq/Ludiq.Peek/Editor/Integration/GuiCallback.cs:35)
UnityEngine.Debug:LogException(Exception)
Ludiq.Peek.GuiCallback:Process() (at Assets/Ludiq/Ludiq.Peek/Editor/Integration/GuiCallback.cs:39)
Ludiq.Peek.HierarchyToolbars:OnHierarchyItemGUI(Int32, Rect) (at Assets/Ludiq/Ludiq.Peek/Editor/Toolbars/Integrations/HierarchyToolbars.cs:26)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

+2
Fixed

Unable to use Peek with 2020.1 beta

spaceemotion 10 months ago updated by Lazlo Bonin (Lead Developer) 9 months ago 1

I am getting the following errors during compilation in 2020.1 beta 5:

- Assets\Ludiq\Ludiq.Peek\Editor\Hierarchies\HierarchyPopup.cs(2,7): error CS0246: The type or namespace name 'Boo' could not be found (are you missing a using directive or an assembly reference?)

- Assets\Ludiq\Ludiq.Peek\Editor\Hierarchies\HierarchyPopup.cs(24,27): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?)

+2
Cannot Reproduce

Please automatically focus on Game window when entering Play mode

hoodust 11 months ago updated 5 months ago 4

With Peek, the Game window doesn't automatically gain focus when entering Play mode, like it does in vanilla Unity. This forces you to click within the Game window after hitting Play and the scene loads. 

In case it makes a difference, I have a dual-monitor set up and the Game window is alone on the second monitor. 

This small thing actually makes testing extremely frustrating, especially since I hide the mouse cursor when the scene loads, and with Peek it hides the mouse cursor across both monitors for some reason, so it's even harder to find the Game window and click on it.

Thanks!

+2
Fixed

Getting weird delaying Plugin container init because database is not yet initialised

Andrew Scott 1 year ago updated by Lazlo Bonin (Lead Developer) 1 year ago 6

So right through the Beta 2019.3.0 versions I never saw this message and am now seeing it, it doesn't appear all the time, but when it does Unity hangs for about 5 mins give or take.

It usually appears when I double click any area that loads up Visual Studio 2019, you can not click on anything in the Editor while it is in this tight loop. Eventually the IDE will load up and then the following warning appears in the console.

This seems to only be happening since 2019.3.0f1 was released, never saw it on previous beta versions or other versions of Unity. And unlike what the message says, this is not a new project, even thought it was created in Unity 2019.3.0, I have been working on it for a few days now.

I am not sure if this helps or not, but I have had this Editor open for the last 2 days, but I doubt that has anything to do with it. But just in case it was one of those things that happens for longer periods of use.

Delaying plugin container initialization because asset database is not yet initialized.
This can happen after a project reimport or Unity upgrade.

UnityEngine.Debug:Log(Object)
Ludiq.PeekCore.PluginContainer:.cctor() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Plugins/PluginContainer.cs:25)
UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes(Type[])

+1
Fixed

"Could not get a Unity SerializedProperty for the property" bug with Odin + Peek

Meatloaf 3 months ago updated by Lazlo Bonin (Lead Developer) 2 months ago 2

Description

I think due to the way Peek overrides the default UnityEngine.Object inspector it causes a conflict with Odin drawing inspectors properly. See Repro Steps & Reference Image below for more details.

Bug message "Could not get a Unity SerializedProperty for the property 'key' of type ..."

Reproduction Steps

  1. Import Odin (3.0.1 or 2.1.10 tested)
  2. Import Peek (1.3.1)
  3. Create Monobehavior with the following code
    public class NewBehaviourScript : SerializedMonoBehaviour
    {
    /// <summary>
    /// Maps a unique unity GameObject / Scriptable Object to a global reference id used for saving & loading.
    /// </summary>
    [Tooltip(
    "Maps a unique unity GameObject / Scriptable Object to a global reference id used for saving & loading.")]
    [DictionaryDrawerSettings(DisplayMode = DictionaryDisplayOptions.OneLine)]
    public Dictionary<UnityEngine.Object, long> references;
    }
  4. Add Monobehavior to Scene gameobject.
  5. Ensure Dictionary is initialized with type Dictionary<UnityEngine.Object,long>()
  6. Set any prefab or Scriptable Object from the project as a key in the dictionary.
  7. Set the id to 0
  8. Press Add button
  9. See error appear. 

Reference Images

+1

Multiple opened tabs (in popup mode) with a single click (e.g. Bolt).

David Molnar 3 months ago updated 3 months ago 0

Hi!

It would be really useful if you could group windows (for example Graph, Graph Inspector and Variables from Bolt visual scripting) then open/close them with a single click/press of [Esc] button.
Or if you could open the same layout as bellow in popup mode after grouping the windows you wanted to be opened.

Thank you for considering!