I have tested and successfully used TE on a single scene in my game (a world map) and am quite happy with those results.

Next, I need to implement it to work across multiple scenes that have been loaded additively and it doesn't seem to find the target button object. Any tips here? Do I need the TE component to always be in the same scene as the buttons are?

And do you recommend I duplicated the TE component in multiple places, or should it be one instance that lives "above" everything else? (if the latter, then it should be capable of finding buttons in any scene?)

    Thank you for your helpful tips so far. Turns out it WAS finding the object. The problem I'm now encountering is when I want to target UI objects that are children of a world space canvas in a 3D hierarchy to the screen space overlay tutorial canvas. It seems that the mask position is not translating correctly. Might be a great feature to fix/add for the next update.

      LilGames indeed I don't think ui objects in 3D canvas are supported 😃, I will keep that in mind for the next update, that one could be a bit tricky.

        LilGames I figured this out, I will post the update to the asset store in the upcoming days!

          Great to hear! I'll do further tests and try targeting the non-UI parent of the object I wanted to highlight and see how that goes.

            LilGames the update has been released today on the asset store, you will find a new demo scene and updated code

            I am both happy and sad. Your update demo looks and behaves perfectly. In my game, it's made no difference. Instead of offsetting the mask position and size relative to the tutorial canvas, the mask appears on the object in 3D space, which puts it off to the left/bottom off-screen.

            Are there any particular lines of code you could point to to help me debug this? Maybe it's a WorldToScreen issue for my particular setup.

              I found the cause! I have levels in separate scenes, loaded additively. The World Space canvas in those scenes do not have a camera assigned by default, since the game camera exists in the main "game loop" scene.

              As a test I imported my game level scene into your demo. It behaved exactly the same as in my game. So then I assigned a new camera to the game level scene and linked it to the World Space canvas. With this setup, the tutorial demo WORKS.

              So I still need to do something about the cameras in the game, perhaps assign temporary ones and then switch them on load. I will keep you updated as this is perhaps important info to relay to people who buy your asset.

                LilGames Thanks, indeed you need to assign your camera on the 3D canvas for the position conversion to work. glad you figured it out, I will add that to the documentation.

                  Solved. I assigned what could be best called a temporary placeholder camera to my WorldSpace canvas and disabled it (inactive). Added a script to the canvas that changes it to my main game camera on start:

                  void Start()
                  {
                  Canvas canvas = GetComponent<Canvas>();
                  canvas.worldCamera = Camera.main;
                  }

                  Tutorial system works as expected now! 🙂

                  Write a Reply...