Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

RATED ★★★★★ [RELEASED] RockTomate - Automate repetitive tasks in Unity

Discussion in 'Assets and Asset Store' started by elmar1028, Jan 22, 2020.

  1. Ian-Lai

    Ian-Lai

    Joined:
    Jul 31, 2019
    Posts:
    15
    Hi Elmar,

    Great job. It really nice to hear that.

    Best regards,
    Ian
     
    elmar1028 likes this.
  2. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    845

    Handle this with version control or your server. ( if not set one up)
     
  3. Ian-Lai

    Ian-Lai

    Joined:
    Jul 31, 2019
    Posts:
    15
    Hi Elmar,

    I have a confusion about RunJobStep. The outfield IsSuccess seems always true whether the job is end with failed or not. Of course I can put variable in executed job's all steps output field IsSuccess. But it still not easy to use.

    Regards,

    Ian
     
  4. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hi Ian,

    Sorry for the delayed response.

    I was able to reproduce the bug, which I am now investigating. I will keep you posted.

    Kind regards,

    Elmar
     
  5. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hi @Ian-Lai,

    Hope you're well.

    The bug when Run Job step always succeeds has been fixed. It will be included in an upcoming 1.0.3 release, which should be live on the Asset Store this week (depending on the review times).

    Please let me know if you'd like the fixed version now and I will send it to you privately.

    Kind regards,

    Elmar
     
  6. Ian-Lai

    Ian-Lai

    Joined:
    Jul 31, 2019
    Posts:
    15
    Hi Elmar,

    I'd like to have it earlier. Thanks for your update.

    Kind regards,

    Ian
     
  7. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Sent.

    Elmar
     
  8. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    An upcoming 1.0.3 update will feature a revamped Job Session Console window with more relevant error reporting and improved readability, making it much easier to spot errors and warnings.

    upload_2020-5-20_23-13-9.png
     
    TonyLi likes this.
  9. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Another upcoming feature is being able to run only a single step. Now you can quickly test individual steps to make sure they're working without having to run the entire Job.

    run_this_step_demo.gif
     
    TonyLi and opsive like this.
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Very useful feature. I'll probably use it quite a lot.
     
  11. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    RockTomate Release Notes 1.0.3

    Update History

    Warning: Due to the changes in the project hierarchy, the current version of RockTomate must be removed before the new one could be imported.

    Your existing jobs will be unaffected.
    Changes & Improvements

    General

    • [Job Editor] Can now run a single Step
    • RockTomate settings are now stored in "ProjectSettings" directory
    • Can now copy job variable values to the clipboard (evaluates formulas as well)
    • [Step Browser] All categories are now sorted in alphabetical order
    • Added additional user settings in the "Preferences" window
    • Job Session Log has been renamed to "Job Session Console"
    • [Job Session Console] Can now sort log entries by Type
    • [Job Session Console] Log entries are now colour-coded by type to be easily identifiable
    • [Job Session Console] Removed unusable expand all/collapse all buttons
    • [Job Session Console] Can now clear console window
    • Printed log entries give more information regarding the failed jobs
    • RockTomate related log entries are automatically printed out if Unity is running in Batch Mode
    • Added an option to clear cache directory and log entries (available in
      Tools > RockTomate > Utils > Clear
      menu option)
    Root Variables
    • Added:
      %UnityDir%
    • Added:
      %IsTempProject%
    • Added:
      %AppVersion%
    • Added:
      %IsBuilding%
    • Added:
      %IsCompiling%
    • Added:
      %TimeSinceStartup%

    Macros

    • Added:
      trim()
    • Added:
      starts_with()
    • Added:
      ends_with()
    Steps
    • New Plugin Integration: Bakery GPU Lightmapper
    • Added: Print List
    • Added: Copy Asset
    • Added: Delete Asset
    • Added: Create ScriptableObject Asset
    • Added: Comment
    • [Print] Now prints to Unity Console by default
    • [Print] Added an option to print to Job Session Console (disabled by default)

    Bug Fixes

    General
    • [Job Session Console] Fixed a bug when would sometimes throw exceptions
    • [Variable Bank Editor] Fixed a bug when changes wouldn't be saved when the window is closed
    • [Variable Bank Editor] Fixed a bug when Variable Banks created in newer Unity versions would throw null reference exceptions in older Unity versions
    • Fixed a bug when creating a variable bank in the "External Tab" would break Run Job's TargetJob Field
    • Fixed a bug when whitespace at the end of formula input would skip the formula evaluation stage
    • Fixed a bug when nested macros would sometimes fail
    • Fixed a bug when formulas like
      split("Hello, world", ',')
      wouldn't parse
    • Fixed a bug when duplicated Job and the original Job would share the same Id, causing errors down the line
    • Fixed a bug when custom step drawers wouldn't be utilized

    Steps

    • [Compile DLL] Fixed issues when trying to compile scripts in Unity 2019.3 or later
    • [Run Job Step] Fixed a bug when step wouldn't fail if nested Job fails
    • [Run Job Step] Fixed a bug when duplication of this step would throw an error
    • [Run Job Step] Fixed a bug when exceptions would be thrown for nested Jobs with loop-able steps (e.g. Loop, Repeat etc.)
    • [Run Job Step] Fixed a bug when nested Job would continue execution even after parent Job execution has been interrupted
     
    Last edited: May 21, 2020
    opsive likes this.
  12. Ian-Lai

    Ian-Lai

    Joined:
    Jul 31, 2019
    Posts:
    15
    Hi Elmar

    I've updated version to 1.0.3 and noticed there's something strange about CompileDll step.

    In previous version, I can use .net 3.5 in my unity player settings and the result file would look like this.

    Image 1.png

    But in this version, I can only use .net 4.x in my unity player settings. And the result file will show warning message like below.
    Image 2.png

    The error message when I use .net 3.5 in this version.


    09/06/2020 16:00:05.128 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error :
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0
    09/06/2020 16:00:05.129 | ERROR | Step "Compile DLL" at ROW 2: (0,0) : error : at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0
     
  13. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hi Ian,

    I can't seem to reproduce the issue. What version of Unity are you using? Would it be possible if you could reproduce this on a smaller scale and privately send me the Job file?

    Thank you,

    Elmar
     
  14. Ian-Lai

    Ian-Lai

    Joined:
    Jul 31, 2019
    Posts:
    15
    I'm not sure this problem has fixed or not.

    After importing Rocktomate package, I delete sample job files and create variable bank file. When I press (+) button to add variable. It shows NULL in editor window. It also shows a NullReferenceException like below when I try to fix it. But if I create a job file first, It works fine.


    NullReferenceException: Object reference not set to an instance of an object
    HardCodeLab.RockTomate.Editor.Controls.VariableTreeElement.set_FieldName (System.String value) (at Assets/RockTomate/Scripts/Editor/Controls/TreeViews/Variables/VariableTreeElement.cs:41)
    HardCodeLab.RockTomate.Editor.Controls.VariablesTreeView.RenameEnded (UnityEditor.IMGUI.Controls.TreeView+RenameEndedArgs args) (at Assets/RockTomate/Scripts/Editor/Controls/TreeViews/Variables/VariablesTreeView.cs:222)
    UnityEditor.IMGUI.Controls.TreeView+TreeViewControlGUI.RenameEnded () (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControlGUI.cs:224)
    UnityEditor.IMGUI.Controls.TreeViewGUI.EndRename () (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:441)
    UnityEditor.IMGUI.Controls.TreeViewGUI.DoRenameOverlay () (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:451)
    UnityEditor.IMGUI.Controls.TreeViewGUI.BeginRowGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:178)
    UnityEditor.IMGUI.Controls.TreeView+TreeViewControlGUI.BeginRowGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControlGUI.cs:196)
    UnityEditor.IMGUI.Controls.TreeViewController.OnGUI (UnityEngine.Rect rect, System.Int32 keyboardControlID) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:585)
    UnityEditor.IMGUI.Controls.TreeView.TreeViewWithMultiColumnHeader (UnityEngine.Rect rect) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControl.cs:438)
    UnityEditor.IMGUI.Controls.TreeView.OnGUI (UnityEngine.Rect rect) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControl.cs:412)
    HardCodeLab.RockTomate.Editor.Windows.VariableBankEditorWindow.RenderVariableTreeView () (at Assets/RockTomate/Scripts/Editor/Windows/VariableBankEditorWindow.cs:146)
    HardCodeLab.RockTomate.Editor.Windows.VariableBankEditorWindow.OnGUI () (at Assets/RockTomate/Scripts/Editor/Windows/VariableBankEditorWindow.cs:125)
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <df7127ba07dc446d9f5831a0ec7b1d63>: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 <df7127ba07dc446d9f5831a0ec7b1d63>:0)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <df7127ba07dc446d9f5831a0ec7b1d63>:0)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:336)
    UnityEditor.HostView.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:129)
    UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:266)
    UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:438)
    UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:421)
    UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:401)
    UnityEngine.Experimental.UIElements.EventDispatcher.PropagateEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:754)
    UnityEngine.Experimental.UIElements.EventDispatcher.ProcessEvent (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:599)
    UnityEngine.Experimental.UIElements.EventDispatcher.Dispatch (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:307)
    UnityEngine.Experimental.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.Experimental.UIElements.EventBase e, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:176)
    UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch (UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:245)
    UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:68)
    UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)
     
  15. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hi @Ian-Lai,

    That's a new one. I have fixed it and sent you the fix in the PM.

    The fix will be available in the next public release. If anyone else is affected by it, please message me privately with your invoice number and I will send it over.

    Elmar
     
  16. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hi all! Hope you are all well!

    After several months of hard work, I am proud to announce the release of version 1.1.0!


    Full Changelog

    Changes & Improvements

    Event Manager

    This update brings a brand new feature to RockTomate - Event Manager!

    upload_2020-9-30_19-42-1.png

    It's a separate system that lets you configure RockTomate to run whenever certain events are triggered (e.g. new asset has been imported or project finished building). This lets you create your own automated workflows without even having to worry about running RockTomate jobs.


    Persistent Variables


    By default, RockTomate doesn't store modified variable values after job execution. This was done to ensure that jobs will run as predicted. However, this limited some users from being able to store simple data that was needed to stay persistent.

    Starting from version 1.1.0, you can now specify if you want variable values to persist between job executions.

    variables-persistent-variables-demo.gif


    Quickly jump between Jobs

    Job Editor Window now remembers the last 5 jobs you've been working on, allowing to quickly jump between them. The number of remembered jobs can be changed in the Preferences window. This QoL feature will make it easier to work with multiple jobs at once.

    jumping_between_jobs.gif

    String Interpolation in Formulas

    If you've been heavily relying on formulas in your workflows, you would know that you can only have 1 root macro per formula (excluding nested macro calls). Starting from 1.1, you can now have multiple macro calls in a single formula spliced together.

    For example:
    2 plus 2 equals {sum(2,2)}


    Would evaluate to:
    2 plus 2 equals 4


    This update took a while, but I hope you'll enjoy it as much as I enjoyed working on it :D
     
    opsive likes this.
  17. Jakub_Machowski

    Jakub_Machowski

    Joined:
    Mar 19, 2013
    Posts:
    647
    Hello I'm not programmer but working a lot in Playmaker, Is Your software something similar in workflow (but for editor) is there a list of already created actions for RockTomate?
     
  18. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hi @Jakub_Machowski,

    There is a wiki page dedicated to all currently existing actions (known as steps) here.

    May I ask what would you like to achieve with RockTomate?

    Kind regards,

    Elmar
     
  19. Jakub_Machowski

    Jakub_Machowski

    Joined:
    Mar 19, 2013
    Posts:
    647
    We are looking for an asset that Will allow us to prepare some In Editor Tools but without programming, like We can do With playmaker but playmaker works only in playmode. So basically more actions library is available better for us. If I may as what is difference beeteen Your RockTomate and for example Monkey available on asset store too https://assetstore.unity.com/packages/tools/utilities/monkey-productivity-commands-119938 We didnt choose their asset cause its more like making batching process that simillar to playmaker workflow :) This is Why I'm asking here
     
  20. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    I never used MonKey, but from their store page description, it seems that they specialize in smaller-scale actions at a click of shortcuts (e.g. Open Scene).

    RockTomate can do smaller-scale actions, as well as chaining those actions together, also allowing you to pass parameters in the process, which lets you create large workflows. In this example, I use RockTomate to compile, test and publish my existing products (RockTomate included) to the Asset Store.

    I've written a guide on how automated tasks (called Jobs) can be created in RockTomate here.

    And, of course, if there's is an action that you'd love to see in RockTomate, I will add it :)
     
  21. Jakub_Machowski

    Jakub_Machowski

    Joined:
    Mar 19, 2013
    Posts:
    647
    Thanks for Info :) We will check out it and make decission
     
  22. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    RockTomate Release Notes 1.1.1

    Update History

    Changes & Improvements

    General

    • [Job Editor Window] Improved performance when large Jobs with lots of steps are rendered
    • Added support for Unity 2020.2
    • Upgraded Odin Serializer version
    • New Step status:
      Unknown
      . If you see it, that means there was an internal error when trying to retrieve Step's status. Keep an eye out for it and if you see it, report it.

    Bug Fixes

    General
    • Fixed serialization issues when trying to run Steps that have fields of type
      Unity.Object
    • Fixed a bug that caused Unity to freeze occasionally when duplicating Jobs or Variable Banks (using
      CTRL/CMD + D
      shortcut command)
    • Fixed a bug that caused Unity to freeze occasionally when starting a project
    • Fixed a bug when menu item at
      Tools > RockTomate > Utils > Open Directory > Project Root
      wouldn't open root of the project directory
     
  23. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    RockTomate Release Notes 1.1.2

    Update History

    Changes & Improvements

    General

    • Can now run Jobs via shortcuts (Unity 2019.1 or newer)
    • Memory management improvements
    Job Editor Window
    • Can now open recent jobs when no job has been selected
    • Disabled "Run This" option for Comment steps
    Step Browser Window
    • Improved search algorithm
    Step Properties Window
    • Field types that have generics (e.g.
      List<string>
      ) are now displayed correctly in tooltips
    Variable Manager Window
    • Can now reorder variables
    Variable Bank Editor Window
    • Can now reorder variables
    Steps
    • Added: Run Unit Tests (requires com.unity.test-framework)
    • Added 12 Git-related steps (.NET 4.6 or newer):
      • Init
      • Add
      • Remove
      • Commit
      • Apply Tag
      • Get Repository
      • Get Branches
      • Get Branch History
      • Get Work Directory Files
      • Compare Commits
      • Create Branch
      • Checkout Branch
    • [Print List] Fixed an issue when trying to print with an empty list would fail this Step
    • [Run Job] Added "Auto Run" option
    • [Build Player] Added "Manual Cancel Fails Step" option (enabled by default). Cancelling the building process manually will no longer mark Step as successful by default.
    Macros
    • Added:
      peel()
    • Added:
      is_git_repo()
    • Added:
      get_git_last_commit_hash()
    • Added:
      get_git_current_branch()
    Root Variables
    • Added:
      %ScriptableRuntimeVersion%
    • Added:
      %IsGitRepo%
    • Added:
      %GitLastCommitHash%
    • Added:
      %GitCurrentBranch%

    Bug Fixes

    General
    • Fixed a bug when RockTomate's preferences could not be edited and
      SerializedObject target has been destroyed
      error being printed all the time
    • Fixed a bug when formula icons wouldn't render properly (Unity 2020.1 or newer)
    Job Editor Window
    • Fixed a bug when opening a Job wouldn't focus the window if it's already been opened before
    Step Browser Window
    • Fixed a bug when step list items wouldn't render properly (Unity 2020.1 or newer)
     
    Last edited: Mar 1, 2021
    firstuser likes this.
  24. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    I am happy to announce that the upcoming update will add support for array-type variables! Here's how the workflow looks like:

    array-type-variable-demo.gif

    From there, array-type variables can then be referenced like any ordinary variables. Naturally, Variable Banks will also support array-type variables.

    As you may have noticed from the demo, the new update will also allow you to create
    BuildTarget
    variable types, so creating workflows based on build targets will be easier than ever!
     
    firstuser likes this.
  25. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    RockTomate 1.1.3 is now live!
    Full Release Notes


    This update adds support for creating and editing array-type variables, bug fixes and stability improvements.

    Event Manager data will no longer be auto-created on initialisation as it's been causing various errors on startup to most customers.

    Build Player step is now more robust than ever! You can now specify the output directory path and file name separately. Depending on the build target, the file name will be used and a correct extension will be added.

    With that said, the new update is also being shipped with an additional out-of-the-box Job (named BuildPlatforms.rock.job) that lets you build for specified platforms. This also takes advantage of array-type variables!
     
    firstuser likes this.
  26. xiao-xxl

    xiao-xxl

    Joined:
    Nov 16, 2018
    Posts:
    48
    Hi, in the doc https://rocktomate-docs.onrender.com/formulas/string-interpolation I see the example:

    2 plus 2 equals sum(2,2)

    I know it's an example of formulas and I know it's meaning. But what the word "plus" and "equals" is? Is the word "plus" a macro? I dont think so. It seems like an operator. And where can I find all the "operator words" like "plus" than I can use in formulas.

    Why just use operator instead of operator words? For example, use "+" instead of “plus”.
     
  27. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hi there,

    Apologies if it wasn't clear. The colour syntax in the documentation makes it a bit misleading.

    The "2 plus 2 equals" part of the formula is actually a simple piece of text. It could've been "2 + 2 =" and the results wouldn't have changed. The article you've linked demonstrates how you can combine macros with ordinary strings.

    The actual macro that sums both digits is
    sum(2, 2)
    , where
    sum
    is the name of the macro, and values inside brackets are its arguments, separated by a comma.

    Hope that clears things up :)
     
  28. xiao-xxl

    xiao-xxl

    Joined:
    Nov 16, 2018
    Posts:
    48
    Understand! Thanks!
     
  29. xiao-xxl

    xiao-xxl

    Joined:
    Nov 16, 2018
    Posts:
    48
    HI, I want a jagged array in the step's InputField, I tried but failed. Can you support it?
    upload_2021-5-27_17-49-48.png
     
  30. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Hmm, at the moment, jagged arrays are not supported.

    Could you tell me what is your use of jagged arrays? How do they come into play for your Step?
     
  31. xiao-xxl

    xiao-xxl

    Joined:
    Nov 16, 2018
    Posts:
    48
    I made a custom step to run scripts like shell, cmd or python etc. And I use the step's InputField to set parameters for the command line. It works very good. But there is a little problem. The step's InputField is so short but parameters are always very long. Reading and writing in a small input box is not a good experience. And Cant support mutiline command in one step.

    For example, I use this command line tool: https://github.com/pierre3/PlantUmlClassDiagramGenerator to generate uml for my project. And I want to use it from RockTomate, in this way I can have many different parameter configs for different folder. The command line's parameter is:

    "puml-gen InputPath [OutputPath] [-dir] [-public | -ignore IgnoreAccessibilities] [-excludePaths ExcludePathList] [-createAssociation]"

    It's too long for the small inputfield. So I want to break the parameters into multiple lines. So I use a array. The result like this:

    upload_2021-5-28_12-13-42.png

    These parameters in a array represent one line in the shell script.
    If I want to execute multiline shell commands. I need a jagged array.
    Like this:
    upload_2021-5-28_12-24-25.png
     
  32. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    Wouldn't it be better to have separate steps for each shell command? Breaking up complex tasks into smaller Steps makes it easier to keep track of the progress when your Job is running. Also, it would be easier to debug things in case something goes wrong.

    So, instead of jagged arrays, you'd have 1-dimensional arrays for each Step.
     
  33. firstuser

    firstuser

    Joined:
    May 5, 2016
    Posts:
    147
    Seems like a multi-line input field (TextArea I think it's called) could also be a quick solution if that's the reason we're going down the array route in the first place? Not sure if possible currently just thinking out loud.
     
  34. xiao-xxl

    xiao-xxl

    Joined:
    Nov 16, 2018
    Posts:
    48
    Please modify the step [Delete Directory] !!! Delete the file to the recycle bin instead of deleting it completely!!!

    I wrote wrong parameters in the step, and completely deleted my important files, and it was irretrievable!!!
     
    firstuser likes this.
  35. firstuser

    firstuser

    Joined:
    May 5, 2016
    Posts:
    147
    Agreed, permanent vs regular os delete distinction would be nice.
     
  36. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    I am sorry this happened to you. You're raising a good point. In the next update, I will let users pick whether they want to delete files permanently or move them to recycle bin (recycle bin by default).
     
    firstuser likes this.
  37. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    RockTomate 1.1.4 is now live!
    Full Release Notes


    It's been long overdue, but here it is!

    The documentation for Steps and Macros has been moved from GitHub Wiki pages to the RockTomate documentation site. This was done to unify the docs and it's much simpler to manage and coordinate when pushing new changes live.

    This update is, unfortunately, smaller than I wanted, and only focuses on bug fixes and improvements. I would like to apologise for that. I had to push some features to the next release cycle due to a lack of time.
     
    docsavage and TonyLi like this.
  38. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,355
    RockTomate 1.1.5 is now live!
    Full Release Notes


    Making RockTomate more stable with bug fixes and small quality of life improvements, including modernizing for latest Unity versions and C# API.
     
    opsive and TonyLi like this.