Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

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,320
    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:
    446
    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,320
    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:
    446
    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,320
    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:
    446
    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,320
    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:
    14
    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,320
    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,320
    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,320
    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.
     
  12. shaldar

    shaldar

    Joined:
    Dec 21, 2016
    Posts:
    2
    Do you have a documentation of updated AIs that can be used with TM2 using the TutorialManager namespace? The PDF that came with the asset lists only 3 API calls.
    - tmManager.StartTutorial()
    - tmManager.PrevStage()
    - tmManager.NextStage()

    Are there other calls that can be made? For example - if I want to invoke a stage by name or index - or something more complicated, like calling different stages based on outcome of player interaction, like calling different stages for a case/switch block of code.
     
  13. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,320
    Hi Shaldar,

    You can invoke stage by index by calling
    Code (CSharp):
    1. tmManager.JumpStage(stage_index);
    Kind regards,

    Elmar
     
  14. jrDev

    jrDev

    Joined:
    Nov 5, 2008
    Posts:
    1,715
    Hello,

    Your asset store page link doesn't seem to work.

    Thanks,
    jrDev
     
  15. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,320
  16. jrDev

    jrDev

    Joined:
    Nov 5, 2008
    Posts:
    1,715
  17. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,320
  18. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,320
    In the next few months, I will be gathering feedback from you guys. Data from the survey will help me make appropriate decisions and focus on areas of Tutorial Master that matter. With your help, I will be able to see areas that need to be addressed and improved, reworked or even removed.

    To kick things off here's a very short survey revolving around compatibility: https://forms.gle/Lg6b6d33YbpoudC66

    Note you need Google account to be able to take part in a survey.

    Thank you in advance!
     
  19. GuruGurra

    GuruGurra

    Joined:
    Jan 18, 2018
    Posts:
    34
    It's a bit hard to complete your survey since the scripting runtime version field is no longer present when using Unity 2019.2 or later.
     
  20. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,320
    Thanks for bringing that up. In that case ".NET 4.x Equivalent or higher" is fine.
     
unityunity