rocktomate / issues Goto Github PK
View Code? Open in Web Editor NEWSubmit bugs and feature requests.
Submit bugs and feature requests.
Feature Proposal
Window launched from Variable Bank to preview List items should have Scroll
Problem this Solves
If you have list with 20+ elements (for example you are using 2 separate lists of Scenes to include in build not related to BuildWindow you cant preview all elements because there is no scroll
Steps to Reproduce
NullReferenceException: Object reference not set to an instance of an object HardCodeLab.RockTomate.Core.Steps.Scope.StopAll () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Core/Data/Session/Scope.cs:197) HardCodeLab.RockTomate.Core.Data.JobSession.Stop () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Core/Data/Session/JobSession.cs:431) HardCodeLab.RockTomate.Core.Managers.JobSessionController.StopSession () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Core/Managers/JobSessionController.cs:226) HardCodeLab.RockTomate.Editor.Windows.JobEditorWindow.StopJob () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Windows/JobEditorWindow.cs:134) HardCodeLab.RockTomate.Editor.Windows.JobEditorWindow.OnToolbarGUI () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Windows/JobEditorWindow.cs:110) HardCodeLab.RockTomate.Editor.Windows.JobEditorWindow.OnGUI () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Windows/JobEditorWindow.cs:198) UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <92f998fbb4ca4d8dab7793d6e003b794>:0) UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <92f998fbb4ca4d8dab7793d6e003b794>:0) UnityEditor.DockArea.OldOnGUI () (at <92f998fbb4ca4d8dab7793d6e003b794>: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 <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.EventDispatcher.OpenGate () (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <faa31f22dbbe43159226eb3a4f009ff2>:0)
Expected Results
Ideally, step just renames in Job, or at least job does not fails to run
Actual Results
Renamed step disappears from job list and job fails to run
Steps to Reproduce
Expected Results
JobAsset should be dirtied after every change and saved automatically, to make it compatible with sourceControl
Feature Proposal
Would be great to see parallel group steps in RockTomate, to run few different tasks in parallel.
Problem this Solves
This, for example, could save a lot of time while running test suites in different Unity versions in parallel (or upload to Asset Store from different Unity versions in parallel, etc.)
Feature Proposal
It's pretty annoying current way FieldAttributes are printed in Inspector forces to use specific coding style when naming those fields.
For example, I prefer lowerCase for public fields and if I declare it like this:
[InputField]
public string variableName;
I'll get variable Name
in the Inspector.
I'd like to have first letter always capitalized no matter how I write it in code, this is a default Unity behaviour which we are used to.
I'd propose to use something like this to make it possible:
public static string NicifyName(string name)
{
var nicePropertyName = ObjectNames.NicifyVariableName(name);
if (textInfo == null) textInfo = new CultureInfo("en-US", false).TextInfo;
return textInfo.ToTitleCase(nicePropertyName);
}
Problem this Solves
Allows to use any coding style while making custom Steps and such.
Steps to Reproduce
Expected Results
If this is not allowed - would be nice to see some meaningful error message.
Otherwise I expect it to work properly
Actual Results
I see such errors in console:
NullReferenceException: Object reference not set to an instance of an object HardCodeLab.RockTomate.Editor.Controls.VariableTreeElement.set_Field (HardCodeLab.RockTomate.Core.Data.BaseField value) (at Assets/!Service/RockTomate/Scripts/Editor/Controls/TreeViews/Variables/VariableTreeElement.cs:20) HardCodeLab.RockTomate.Editor.Controls.VariableTreeElement..ctor (Int32 id, Int32 depth, HardCodeLab.RockTomate.Core.Data.BaseField field, Boolean isRoot) (at Assets/!Service/RockTomate/Scripts/Editor/Controls/TreeViews/Variables/VariableTreeElement.cs:71) HardCodeLab.RockTomate.Editor.Windows.VariableBankEditorWindow.GetVariableElements (System.Collections.Generic.List
1 fields) (at Assets/!Service/RockTomate/Scripts/Editor/Windows/VariableBankEditorWindow.cs:163)
HardCodeLab.RockTomate.Editor.Windows.VariableBankEditorWindow.Init () (at Assets/!Service/RockTomate/Scripts/Editor/Windows/VariableBankEditorWindow.cs:84)
HardCodeLab.RockTomate.Editor.Windows.VariableBankEditorWindow.OnGUI () (at Assets/!Service/RockTomate/Scripts/Editor/Windows/VariableBankEditorWindow.cs:121)
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)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
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:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:295)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:288)
UnityEditor.HostView.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:107)
UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt) (at C:/buildslave/unity/build/Runtime/UIElements/Managed/IMGUIContainer.cs:182)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
`
Steps to Reproduce
Expected Results
VariableBanks modified by Runtime should be saved during save project
Actual Results
VariableBanks are changed only in Library, and asset isn't dirty so can't be saved
Feature Proposal
Drag and dropping a Job asset from the Project's Asset browser could create automatically a RunJob step with the dragged job asset assigned to it.
Problem this Solves
No problem solved, just less clicks and minor UX enhancement.
Steps to Reproduce
Expected Results
GoogleDrive Job has 6steps inside so everystep should be visible in Log and be called
Actual Results
Job is Called but no Step in Job is Completed
[ROCKTOMATE][Info] ====================================================================================================
[ROCKTOMATE][Info] Starting a Job of name "GoogleDrive"
[ROCKTOMATE][Info] ====================================================================================================
[ROCKTOMATE][Info] Starting to update persistent variables
[ROCKTOMATE][Info] Done updating persistent variables.
[ROCKTOMATE][Info] ====================================================================================================
[ROCKTOMATE][Info] Finished running a Job of name "GoogleDrive"
[ROCKTOMATE][Info] ====================================================================================================
Reason for the usage
Sometimes it’s nice to ‘refactor’ a group of steps that are inside a job as a separate standalone job on it’s own. (I.e. a series of Create, Copy, Move Folders that could be re-used by many jobs).
This can be currently achieved by duplicating a job and deleting all the steps that were not part of the intended ‘refactor’
Steps to Reproduce
Expected Results
Runs JobB
Actual Results
Several things can happen:
Feature Proposal
Add optional parameter to string fields that allow using the additional button for file selection.
Problem this Solves
For example in BuildPlayerStep there is AssetBundleManifest Path, with the button we would be able to select a specific file instead of copying path from the explorer
Working example in attached video (but i don't like how i made it)
public class StringDrawer : FieldDrawer<string>
{
/// <inheritdoc />
protected override string OnRender(GUIContent content, string value, FormulaCollection formulaCollection)
{
value = EditorGUILayout.TextField(content, value);
if (content.text.ToLower().Contains("path"))
{
if (GUILayout.Button("Select path"))
{
value = EditorUtility.OpenFilePanel(value, "", "");
}
}
return value;
}
Feature Proposal
Application Version and Build number on the root variable set (maybe there's a better way).
Build number might need to be dynamic in the sense that it depends on the player's settings per platform.
Problem this Solves
When creating build target paths it would be nice to be able to get the Application.version and build number from the app.
Extra notes
Can we add variables to that root vars window list?
Steps to Reproduce
Unfortunately I'm not sure how to reproduce it.
I did tried to reproduce it when I faced this problem first time but had no luck.
Now I see it again and not sure what's exactly leads to this problem.
Simply I run few jobs, while Job Session Log window is visible, close project, reopen it again and sometimes it's totally fine but sometimes it throws errors in console and Job Session Log window stays empty
Expected Results
No errors in console.
Actual Results
Errors spam in console:
ArgumentException: Invalid Depth info in input list. Depth cannot increase more than 1 per row. Index 0 has Depth -1 while index 1 has Depth 2 HardCodeLab.RockTomate.Editor.Helpers.TreeElementUtility.ValidateDepthValues[T] (System.Collections.Generic.IList
1[T] list) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Helpers/TreeElementUtility.cs:122)
HardCodeLab.RockTomate.Editor.Helpers.TreeElementUtility.ListToTree[T] (System.Collections.Generic.IList1[T] list) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Helpers/TreeElementUtility.cs:43) HardCodeLab.RockTomate.Editor.Controls.TreeModel
1[T].Init (System.Collections.Generic.IList1[T] data) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Controls/TreeViews/TreeModel.cs:44) HardCodeLab.RockTomate.Editor.Controls.TreeModel
1[T].SetData (System.Collections.Generic.IList1[T] data) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Controls/TreeViews/TreeModel.cs:34) HardCodeLab.RockTomate.Editor.Controls.TreeModel
1[T]..ctor (System.Collections.Generic.IList1[T] data) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Controls/TreeViews/TreeModel.cs:24) HardCodeLab.RockTomate.Editor.Windows.JobSessionLogWindow.Init () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Windows/JobSessionLogWindow.cs:65) HardCodeLab.RockTomate.Editor.Windows.JobSessionLogWindow.OnGUI () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Windows/JobSessionLogWindow.cs:191) UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <92f998fbb4ca4d8dab7793d6e003b794>:0) UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <92f998fbb4ca4d8dab7793d6e003b794>:0) UnityEditor.DockArea.OldOnGUI () (at <92f998fbb4ca4d8dab7793d6e003b794>: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 <e40488dcb2e3475fad9ef37a4468eea0>:0) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
Steps to Reproduce
Expected Results
Updated list of variables from newly opened bank
Actual Results
List of variables from previously opened bank
Steps to Reproduce
Expected Results
Because there is no described way to Move Variable from One Job to Another, Variables Created inside RunJob should be available in MainJob and in all Jobs Called From MainJob
Actual Results
Variable isn't Resolved and must be stored in VariableBank with RuntimeFlag
Steps to Reproduce
Expected Results
I expect bank editor to save changes when I close editor or even when I unfocus input field
Actual Results
Bank editor does not saves changes immediately leading to possible data loss if Unity will crash before you'll save project changes.
Steps to Reproduce
Expected Results
Sub Job Should be called
Actual Results
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Preparing the execution...
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Beginning to evaluate input field values...
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Successfully set value for input field "Target Job". Value is "BuildXbox.rock.job (HardCodeLab.RockTomate.Core.Data.Job)"
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Finished evaluating input field values.
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Beginning to validate fields...
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Finished validating fields.
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Resetting the Step...
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Finished resetting the Step.
[ROCKTOMATE][Info] Step "Run Job" at ROW 6: Preparation has finished. Beginning the execution...
NullReferenceException: Object reference not set to an instance of an object
at HardCodeLab.RockTomate.Steps.RunJobStep+<OnExecute>d__9.MoveNext () [0x00144] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Steps\Classes\General\RunJobStep.cs:80
at HardCodeLab.RockTomate.Core.Coroutines.EditorCoroutines.MoveNext (HardCodeLab.RockTomate.Core.Coroutines.ECoroutine coroutine) [0x00001] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Core\Utils\EditorCoroutines\EditorCoroutines.cs:205
at HardCodeLab.RockTomate.Core.Coroutines.EditorCoroutines.GoStartCoroutine (HardCodeLab.RockTomate.Core.Coroutines.ECoroutine coroutine) [0x000c4] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Core\Utils\EditorCoroutines\EditorCoroutines.cs:157
at HardCodeLab.RockTomate.Core.Coroutines.EditorCoroutines.GoStartCoroutine (System.Collections.IEnumerator routine, System.Object thisReference) [0x00022] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Core\Utils\EditorCoroutines\EditorCoroutines.cs:130
at HardCodeLab.RockTomate.Core.Coroutines.EditorCoroutines.StartCoroutine (System.Collections.IEnumerator routine, System.Object thisReference) [0x00001] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Core\Utils\EditorCoroutines\EditorCoroutines.cs:69
at HardCodeLab.RockTomate.Core.Steps.Step+<Execute>d__45.MoveNext () [0x0023f] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Core\Steps\Step.cs:308
at HardCodeLab.RockTomate.Core.Coroutines.EditorCoroutines.MoveNext (HardCodeLab.RockTomate.Core.Coroutines.ECoroutine coroutine) [0x00001] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Core\Utils\EditorCoroutines\EditorCoroutines.cs:205
at HardCodeLab.RockTomate.Core.Coroutines.EditorCoroutines.OnUpdate () [0x000f1] in C:\Users\user\AppData\Local\Jenkins.jenkins\workspace\ToolsUp - RockTomate - Xbox\default\Assets\Plugins\RockTomate\Scripts\Core\Utils\EditorCoroutines\EditorCoroutines.cs:188
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <fb001e01371b4adca20013e0ac763896>:0
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <fb001e01371b4adca20013e0ac763896>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <fb001e01371b4adca20013e0ac763896>:0
at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x000e7] in <fb001e01371b4adca20013e0ac763896>:0
at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00008] in <fb001e01371b4adca20013e0ac763896>:0
at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <fb001e01371b4adca20013e0ac763896>:0
at UnityEditor.EditorApplication.Internal_CallUpdateFunctions () [0x00041] in <8004fcc221b54f98ba547350ea71d812>:0
(Filename: Assets/Plugins/RockTomate/Scripts/Steps/Classes/General/RunJobStep.cs Line: 80)
Steps to Reproduce
Expected Results
To iterate through the items and it does when on the job itself.
Actual Results
When the job is triggered stand alone it works, when it's triggered by another process, it fails.
Steps to Reproduce
Expected Results
JobParent manages to run JobChild.
Actual Results
Externals variables used in JobChild won't resolve (will stay %variablename%);
Temporal Fix: Add the same External variables asset used by JobChild in JobParent.
This is maybe by design (as that would allow for overrides), however, it would be nice that if we don't add the same variables anywhere, that JobParent could run JobChild without having to know too much about the variables on JobChild
Steps to Reproduce
Environment
Unity 2019.3.9f1 OSX
Unity 2019.3.9f1 Windows
This was a sneaky one to find, but these steps gets it triggered 100% on my side.
Actual Results
The target job's field changes from typeof 'Job' to typeof 'Variable Bank' with no way to get back to job type until unity is restarted
More Info
Steps to Reproduce
Debugging
Problem is related to FormulaCollection used to render Fields.
FormulaCollection has 0 items, because makeListStep just changes array without changing FormulaCollection
Expected Results
You can inspect items in Bank and modify them
Actual Results
You can't see any item, GUI is broken, Exception is thrown in Console
Fix
//Fix adding new elements to list without FormulaCollection
OutputFieldData.TrySetVariable(JobContext context, object newValue)
//After
field.SetValue(newValue);
//Add this
if(newValue is Array array) //Check if newValue is Array
{
if (field.FormulaCollection.ChildFormulas.Count != array.Length) // Check if FormulasCount is different than array length
{
field.FormulaCollection.ChildFormulas.Clear(); // Remove formulas to prevent adding new items everytime
foreach (var item in array)
{
field.FormulaCollection.ChildFormulas.Add(Formula.Create(field.ReturnType));
}
}
}
//Fix displaying fields without FormulaCollection
CollectionDrawer.Render(GUIContent content, object value, FormulaCollection formulaCollection)
Formula formula;
if(formulaCollection.ChildFormulas.Count > i)
{
formula = formulaCollection.ChildFormulas[i];
}
else
{
formulaCollection.ChildFormulas.Add(Formula.Create(itemType));
formula = formulaCollection.ChildFormulas[i];
}
//Instead
var formula = formulaCollection.ChildFormulas[i];
Steps to Reproduce
Expected Results
Creates a test folder at the root of the user's path
Actual Results
Creates a folder at the project's dir with the name '~' and then 'testFolder' inside of it.
Steps to Reproduce
Expected Results
I expect see some error if this action is not allowed.
Actual Results
Nothing happens.
Feature Proposal
A somewhat QoL feature, selecting a line on the JobSession Log that has Step information could highlight the job.
It's about visibility in general.
Problem this Solves
It's about visibility in general, the JobSession Log can get crowded, selecting a line in it could select the step on the Job Editor.
Viceversa there's a similar issue, when looking for the 'error message info' it's a bit hard to find the failed steps on the JobSession Log, maybe the error steps could be highlit in red or have some error marker at the failed lines.
Feature Proposal
Would be great to be able to edit existing variables names and types, even without applying those changes to the places where variables are used - it would already help a lot.
Problem this Solves
It would allow quickly fix incorrect name or type if you accidentally select \ input wrong values before creating variable.
Now you have to remove old variable and create new one from scratch which is pretty time-consuming when dealing with lots of variables.
Steps to Reproduce
Expected Results
I expected to see asset uploaded to the Asset Store successfully
Actual Results
Upload fails with this in logs:
Authorization Required
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
HardCodeLab.RockTomate.Steps.AssetStorePublisher.<OnLoginCompleted>c__AnonStorey1:<>m__0(HttpWebResponse, String) (at Assets\!Service\RockTomate\Scripts\Steps\Classes\AssetStorePublisher\AssetStoreAPI.cs:117)
HardCodeLab.RockTomate.Steps.AssetStorePublisher.<HandleRequest>c__AnonStorey6:<>m__0() (at Assets\!Service\RockTomate\Scripts\Steps\Classes\AssetStorePublisher\AssetStoreAPI.cs:332)
UnityEditor.EditorApplication:Internal_CallDelayFunctions() (at C:\buildslave\unity\build\Editor\Mono\EditorApplication.cs:136)
(Filename: Assets/!Service/RockTomate/Scripts/Steps/Classes/AssetStorePublisher/AssetStoreAPI.cs Line: 117)
Request timed out while processing request "https://public-cdn.cloud.unity3d.com/config/production", HTTP error code 0
.[UnityConnect] Request timed out.
Refresh: detecting if any assets need to be imported or removed ... Refresh: elapses 0.019315 seconds (Nothing changed)
Connect to CacheServer localhost:64959
Updating ProjectSettings/ProjectSettings.asset - GUID: 00000000000000004000000000000000...
done. [Time: 3.420400 ms]
Disconnect from CacheServer
Refreshing native plugins compatible for Editor in 3.06 ms, found 4 plugins.
Preloading 2 native plugins for Editor in 0.17 ms.
----- Total AssetImport time: 0.085522s, AssetImport time: 0.030815s, Asset hashing: 0.000000s [0 B, 0.000000 mb/s]
----- Cache Server detail: CacheServerIntegrate time: 0.000000s, CacheServer download: 0.000036s [0 B, 0.000000 mb/s]
----- Cache Server detail: Total assets requested: 1, Cached Assets: 0, Not available: 0, Not supported: 1.
----- Cache Server detail: CacheMove: 0.000000s, CacheDelete: 0.000000s.
Refresh: detecting if any assets need to be imported or removed ... Refresh: elapses 0.019331 seconds (Nothing changed)
[Package Manager] Server::Kill -- Server was shutdown
Cleanup mono
Steps to Reproduce
Expected Results
no errors
Actual Results
console is full of such errors:
ArgumentException: Object of type 'UnityEngine.Object' cannot be converted to type 'HardCodeLab.RockTomate.Core.Data.Job'.
System.RuntimeType.CheckValue (System.Object value, System.Reflection.Binder binder, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.Reflection.MonoMethod.ConvertValues (System.Reflection.Binder binder, System.Object[] args, System.Reflection.ParameterInfo[] pinfo, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) (at <437ba245d8404784b9fbab9b439ac908>: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)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <437ba245d8404784b9fbab9b439ac908>:0)
HardCodeLab.RockTomate.Core.Extensions.MemberInfoExtensions.SetMemberValue (System.Reflection.MemberInfo member, System.Object obj, System.Object value) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Core/Extensions/MemberInfoExtensions.cs:55)
HardCodeLab.RockTomate.Core.Metadata.FieldMetadata.SetValue (HardCodeLab.RockTomate.Core.Steps.Step step, System.Object newValue) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Core/Data/Metadata/FieldMetadata.cs:207)
HardCodeLab.RockTomate.Editor.Controls.StepDrawer.RenderInputField (HardCodeLab.RockTomate.Core.Steps.Step step, HardCodeLab.RockTomate.Core.Metadata.FieldMetadata inputField, HardCodeLab.RockTomate.Core.Data.FormulaCollection formulaCollection, System.Object currentValue) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Controls/Drawers/Steps/StepDrawer.cs:218)
HardCodeLab.RockTomate.Editor.Controls.StepDrawer.RenderInputFields (HardCodeLab.RockTomate.Core.Steps.Step step, HardCodeLab.RockTomate.Core.Metadata.StepMetadata stepMetadata) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Controls/Drawers/Steps/StepDrawer.cs:146)
HardCodeLab.RockTomate.Editor.Controls.StepDrawer.RenderStepFields (HardCodeLab.RockTomate.Core.Steps.Step step, HardCodeLab.RockTomate.Core.Metadata.StepMetadata stepMetadata) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Controls/Drawers/Steps/StepDrawer.cs:86)
HardCodeLab.RockTomate.Editor.Controls.StepDrawer.Render (HardCodeLab.RockTomate.Core.Steps.Step step) (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Controls/Drawers/Steps/StepDrawer.cs:71)
HardCodeLab.RockTomate.Editor.Inspectors.StepPropertiesCustomInspector.RenderStepProperties () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Inspectors/StepPropertiesCustomInspector.cs:46)
HardCodeLab.RockTomate.Editor.Inspectors.StepPropertiesCustomInspector.OnInspectorGUI () (at Library/PackageCache/[email protected]/RockTomate/Scripts/Editor/Inspectors/StepPropertiesCustomInspector.cs:79)
UnityEditor.UIElements.InspectorElement+<>c__DisplayClass58_0.<CreateIMGUIInspectorFromEditor>b__0 () (at <b5e754b172ef4f1b82e78043441796df>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
Feature Proposal
Would be great to somehow evaluate variables values which are made in function mode (fx icon).
Problem this Solves
It's often hard to tell if entered value is correct and can evaluate to proper value until it tested in job.
Would be great to be able to quickly check e.g. path("%ProjectDir%\..\..\..\Folder", true) actual value before running it from job.
Feature Proposal
I think scriptField reference like in classic Inspector is very useful if you want to edit step
Problem this Solves
Right now I have to look for script asset in projectWindow every time I want to edit stepScript or open script using VS, I would like to have easier access to script.
Example Implementation
private void DrawStepHeader()
{
string[] assets = AssetDatabase.FindAssets(SelectedStep.GetType().Name);
GUI.enabled = false;
foreach (string assetGUIDS in assets)
{
string path = AssetDatabase.GUIDToAssetPath(assetGUIDS);
Object script = AssetDatabase.LoadAssetAtPath(path, typeof(MonoScript));
EditorGUILayout.ObjectField("Script", script, SelectedStep.GetType(), false);
}
GUI.enabled = true;
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.