Parameterビューでエラーが発生します

372 views
Skip to first unread message

mikazuki

unread,
Dec 25, 2016, 12:27:47 AM12/25/16
to 宴ユーザーグループ
お世話になっております。
大量のパラメータをExcelに登録しているのですが、Parameterビューをスクロールする際、スクロールバーの動作とParameterビューの表示が遅く(重たく)なって、下記のエラーや警告が表示されることがあります。


<エラー>

ArgumentException: GUILayout: Mismatched LayoutGroup.Repaint
UnityEngine.GUILayoutUtility.BeginLayoutGroup (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options, System.Type layoutType) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:268)
UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:282)
UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:270)
Utage.AdvParamViewer.OnGuiStructArrayValues (System.String key, Utage.AdvParamStruct param) (at Assets/Utage/Editor/Scripts/Menu/Viewer/AdvParamViewer.cs:190)
Utage.AdvParamViewer+<OnGuiStructArray>c__AnonStorey3.<>m__1 (Int32 x) (at Assets/Utage/Editor/Scripts/Menu/Viewer/AdvParamViewer.cs:142)
Utage.OptimizedScrollView.OnGuiSub (Int32 itemCount, System.Action OnDrawHeader, System.Action`1 OnDrawItem) (at Assets/Utage/Editor/Scripts/Lib/Window/OptimizedScrollView.cs:77)
Utage.OptimizedScrollView+<OnGui>c__AnonStorey0.<>m__0 () (at Assets/Utage/Editor/Scripts/Lib/Window/OptimizedScrollView.cs:43)
Utage.UtageEditorToolKit.FoldoutGroup (System.Boolean& foldOunt, System.String name, System.Action OnGui) (at Assets/Utage/Editor/Scripts/Lib/Util/EdtiorToolKit.cs:120)
Utage.OptimizedScrollView.OnGui (Int32 itemCount, System.Action OnDrawHeader, System.Action`1 OnDrawItem) (at Assets/Utage/Editor/Scripts/Lib/Window/OptimizedScrollView.cs:43)
Utage.AdvParamViewer.OnGuiStructArray (System.String name, System.Collections.Generic.Dictionary`2 tbl) (at Assets/Utage/Editor/Scripts/Menu/Viewer/AdvParamViewer.cs:139)
Utage.AdvParamViewer.OnGuiStructArray (Utage.AdvEngine engine) (at Assets/Utage/Editor/Scripts/Menu/Viewer/AdvParamViewer.cs:127)
Utage.AdvParamViewer.OnGuiParam (Utage.AdvEngine engine) (at Assets/Utage/Editor/Scripts/Menu/Viewer/AdvParamViewer.cs:41)
Utage.AdvParamViewer.OnGUISub () (at Assets/Utage/Editor/Scripts/Menu/Viewer/AdvParamViewer.cs:31)
Utage.CustomEditorWindow.OnGUI () (at Assets/Utage/Editor/Scripts/Lib/Window/CustomEditorWindow.cs:40)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)


<警告>

Invalid AssetDatabase path: C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs. Use path relative to the project folder.
UnityEditor.AssetDatabase:LoadAssetAtPath(String, Type)
FlyingWormConsole3.ConsoleProStackEntry:OpenEditor(Int32)
FlyingWormConsole3.PanelLog:DrawContent(Rect&, Boolean)
FlyingWormConsole3.Panel:Draw()
FlyingWormConsole3.ConsolePro3Window:OnGUI()
UnityEditor.DockArea:OnGUI()



また、もし可能であれば、「Constにしているパラメータ」や、「任意のParamTblシート」を、Parameterビューに表示するか表示させないか、選択できるような機能をつけていただけると非常に助かります。
主な理由は、Constに設定しているパラメータはParameterビューで操作する必要がないことや、その時の目的によってParameterビューで見たいパラメータが異なること、パラメータがたくさんあるとParameterビューのスクロールが重たく、目的のパラメータを探し出すのに少々時間がかかるためです。
例えば、非表示にさせたい(または表示させたい)ParamTblシート名をExcelのとあるシートに入力する等、何かしらの方法で設定しておけば、そのParamTblシートはParameterビューで無視される(または表示される)ような機能があると、何度もParameterビューをスクロールする必要がなくなるので助かります。

難しい要望でしたら申し訳ございません。
どうぞよろしくお願いします。

マッドネスラボ

unread,
Dec 25, 2016, 7:48:03 AM12/25/16
to 宴ユーザーグループ
ありがとうございます。

この辺はUnityのエディタのGUIの仕組みに根本的な問題がありまして、
普通にするととても遅くなってしまうのを、色々改造することで早くしています。

ただ、そのせいで不安定になるのと、
>表示するか表示させないか、選択できるような機能
こういったことがとてもやりづらくなってしまっています。

どこまで対応できるかわかりませんが、
近日中に修正しますので、できたらこちらでお伝えします。

mikazuki

unread,
Dec 26, 2016, 12:05:07 AM12/26/16
to 宴ユーザーグループ
ありがとうございます。
お手数をおかけして恐縮ですが、どうぞよろしくお願い申し上げます。

マッドネスラボ

unread,
Jan 11, 2017, 4:16:44 AM1/11/17
to 宴ユーザーグループ
上記のエラーが再現できなかったのですが

・Constにしているパラメータを非表示にする「IgnoreConst」というフラグを追加
・指定した名前のグループを非表示にする「IgnoreGroupList」を追加
・グループごとの折り畳み機能を記録して、次回開いたときも折り畳みのオンオフを引き継ぐように
という改善をしました。
大量に表示する場合はこれで余分な要素をオンオフするなどしてみてください。

ベータ版のリンク先から最新版をDLしなおしてください。
バージョンはb5になります。



mikazuki

unread,
Jan 11, 2017, 7:06:41 AM1/11/17
to 宴ユーザーグループ
ありがとうございます!!
非常に使い勝手が良くなりました。
開発中とても良く使う部分ですので、本当に助かりました。
Reply all
Reply to author
Forward
0 new messages