Search Unity

Tutorial Master 2 - Effortlessly Create Interactive UI Tutorials

Discussion in 'Assets and Asset Store' started by elmar1028, Aug 2, 2016.

  1. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,183
    In that case, you won't need them. Module position will be applied when the Stage begins and data validator ensures that you don't have anything invalid before starting the Tutorial.
     
  2. username132323232

    username132323232

    Joined:
    Dec 9, 2014
    Posts:
    439
    Code (CSharp):
    1.     public void UpdateArrowPointerExample(RectTransform newTarget)
    2.     {
    3.         // if you want to modify arrow module AFTER starting the tutorial, disable data validator
    4.         tutorialManager.Tutorials[0].DataValidatorEnabled = false;
    5.         tutorialManager.StartTutorial();
    6.    
    7.         // get a currently running stage
    8.         var targetStage = tutorialManager.ActiveStage;
    9.    
    10.         // e.g. change the point target of the first Arrow Module on our list
    11.         var arrowModuleSettings = targetStage.GetArrowModuleSettings(0);
    12.    
    13.         // update the point target
    14.         arrowModuleSettings.PointTarget = newTarget;
    15.    
    16.         // this will apply changes you've made to an arrow module
    17.         targetStage.UpdateArrowModulePosition(0);
    18.     }
    19.  
    I tried using this approach, but I'm getting

    NullReferenceException
    HardCodeLab.TutorialMaster.Module.CalculatePositionFromCanvas () (at Assets/Tutorial Master/Scripts/Runtime/Modules/Module.cs:248)
    HardCodeLab.TutorialMaster.Module.CalculateTransform () (at Assets/Tutorial Master/Scripts/Runtime/Modules/Module.cs:430)
    ..................


    Not sure why this is happening. Perhaps because newTarget is a RectTransform and arrowModuleSettings.PointTarget is a simple Transform?
     
  3. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,183
    Found the problem! There was a bug when Module Pool wouldn't instantiate Module prefabs. Another problem I found is that we're updating the wrong Arrow Module setting. Instead of a Point Target, we need to do this:

    Code (CSharp):
    1. arrowModuleSettings.UITarget = newTarget;
    Could you PM me your order number so that I could verify your purchase so that I could send you a fix?

    Sorry for the inconvenience!
     
  4. username132323232

    username132323232

    Joined:
    Dec 9, 2014
    Posts:
    439
    Thank you for looking into this. I actually found another solution that already works. I use an empty GameObject as a target and then move it to the center of the real target created in runtime. So I can wait for the fix in Asset Store.

    Also, I think it would be a nice feature to be able to specify arrow target by object name. So, just before starting tutorial, TMM would assign it automatically. Just saying :)
     
    elmar1028 likes this.
  5. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,183
    Alright then. Glad it worked out for you. I do recommend getting an update the moment it hits the Asset Store.

    That's a good suggestion! I will take it into consideration. But the most reliable way to get Modules' data is through indexes. You can even see their index number in Modules section of the editor.
     
  6. username132323232

    username132323232

    Joined:
    Dec 9, 2014
    Posts:
    439
    Thanks again Elmar for your quick support. I have the tutorial working and look forward to using this asset in the future.

    I'm not sure if it's a good idea, but let me just it mention it :) How about writing some kind of converter that would read a spreadsheet (like Excel) and set up TMM automatically based on it. This would be ideal for the simple type of tutorial that I was making. I found myself spending most of time navigating in TMM between stages and modules. For example, if you want to change arrow fly-in speed for 10 different stages, it takes a lot of clicking around :) That probably won't work well for more complex tutorials, but for a simple "what is this button for?" deal it could be a great time-saver.
     
  7. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,183
    Hmm. That's a great idea and will definitely be helpful down the line. I have something like that planned for future updates.

    Thanks for the suggestion!
     
    username132323232 likes this.
  8. Cogniad

    Cogniad

    Joined:
    Feb 17, 2017
    Posts:
    8
    Since the black background covers the entire screen, will it also block event triggers in game objects like sprites in the scene?
     
  9. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,183
    Hi @Cogniad

    As mentioned in release notes, Tutorial Master 2 has deprecated the Dark Background due to technical difficulties that came with multi-canvas support.

    Kind Regards,

    Elmar
     
  10. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,183
    Tutorial Master 2.0.7 Patch Notes

    API Changes
    • Module.cs - CallerManager property now made public

    Improvements
    • Added support for Unity 2019.2.0f
    • [Editor] Tutorial Master editor visuals are now more consistent with Unity styles

    Bug Fixes
    • [Runtime] Fixed a bug when "Play On Start" wouldn't work properly
    • [Runtime] Fixed a bug when module pools wouldn't be instantiated when "Play On Start" is disabled
    • [Runtime] Fixed a bug when Fly-In and Float effects wouldn't work when "Update Every Frame" is enabled
    • [Editor] Fixed a bug when UnityEvent control would use light skin style when using Dark Skin mode

    Found a bug, or have any questions? Be sure to check out the support section or send an email to support@hardcodelab.com

    To see currently open issues, see the issues page.

    To see previous patch notes, visit the official website.
     
  11. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,183
    Tutorial Master 2.0.7.1 Patch Notes

    Improvements
    • Now works with Canvases whose parents are GameObjects.

    Found a bug, or have any questions? Be sure to check out the support section or send an email to support@hardcodelab.com

    To see currently open issues, see the issues page.

    To see previous patch notes, visit the official website.