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

[Released] ProTips - Tooltip System for UGUI

Discussion in 'Assets and Asset Store' started by zangad, Aug 25, 2015.

  1. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Thank you for providing the error messages, and for sending us your project via email. I was able to open your project and run it fine with no errors, although I didn't see any tooltips popping up when I hovered over the buttons.

    I only noticed two things that were different from your setup and mine: you're using Mac and I'm on a PC (which I don't think matters), and you're using Unity 2020.3.16f1 and I'm using the latest 2020.3.19f1. So I installed 2020.3.16f1 and tried to import ProTips into a new project, and I got all those errors you reported above! But I did the same with Unity 2020.3.19f1, and got no errors. So if you are able to update your project to Unity 2020.3.19f1, I would think you should be able to import ProTips without getting those Collaborate errors.

    Please let me know if that fixes it for you, or if you are unable to update your project I can do some more testing to see if I can get ProTips to import with that 2020.2.16f1 version of Unity.
     
    lemapp likes this.
  2. mathieso

    mathieso

    Joined:
    May 17, 2020
    Posts:
    9
    Thank you for the quick reply.

    The project is large, about 16G without Libs, so I'd rather not upload, unless it's essential. Is it?

    Messed with my code a lot. Now have tooltips, but they're text field is missing in the editor:

    upload_2021-10-9_12-56-46.png

    Using other tooltip styles has the same effect.

    The tooltip shows:

    upload_2021-10-9_12-57-17.png

    I can set the text at runtime, of course.

    When using the library manager to import ProTips, I get:

    upload_2021-10-9_12-58-32.png

    Not sure if that should be there or not. Using 2020.3.19f1.
     
  3. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    No, it's not essential for you to upload your project. It's just the fastest, guess-free way for me to find out what could be the problem. If your project is that big, though, it might not even save much time because of the setup and number of moving parts/complexity.

    So I noticed with the screenshot of the missing BodyText variable, you have an error in your console log. Can you take a look at that error? If it's an Editor script error, it could be keeping that field from showing up in the Editor.

    The %BodyText% not getting replaced usually has something to do with TextMeshPro not getting installed/setup correctly. So make sure you have TextMeshPro installed from Package Manager (it should already be there) and click Yes when it asks you to install TMP Essentials. You might also try reimporting TextMeshPro. If that doesn't help, then the next thing I would do is look in your ProTips code and do a global search for any TEXTMESHPRO_PRESENT compiler directives. You should find none. If you do see them, then you don't have the latest version of ProTips, because I removed those directives because it was causing the %BodyText% variables to not get replaced when TextMeshPro was installed and setup, but the TEXTMESHPRO_PRESENT symbols were not present in the assembly definition. However, the Package Manager doesn't always download the correct version if you already have other versions in your Unity Asset Cache. So you might need to clear the cache if this is the case, and restart Unity, and re-download/re-install ProTips.

    Yes, that "Package Manager Dependencies" message is expected. The latest version of ProTips supports TextMeshPro, so it has to have that as a package dependency, or otherwise ProTips would throw errors when installed it into a project where TextMeshPro has been removed. So yes, please click Install/Upgrade when that message pops up, so it will configure TextMeshPro in the Package Manager. Also, after doing that, I would open our "2. ProTips Demo" scene - since it has references to TextMeshPro, it should prompt you to install TMP Essentials if you don't already have them installed. I would click "Yes" or "Install" on that message box, too.

    Hope that helps!
     
    Last edited: Oct 9, 2021
  4. mathieso

    mathieso

    Joined:
    May 17, 2020
    Posts:
    9
    Thanks again for the help. I removed and installed TextMeshPro, erased ProTips from the cache and reinstalled after restarting Unity, with the same result. Tooltips show, but there is no field in the inspector for entering tooltip text. Demo scene 2 works well, although there are no inspector fields for tooltip text.

    LIbrary manager reports Protips at 1.7.2, and TMP at 3.0.6.

    Strangely, Rider says there 20 instances of "#if TEXTMESHPRO_PRESENT" in the code. So perhaps the package manager isn't downloading the right version of Protips?
     
  5. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hey @mathieso, I sent you a private message with a unity package to try out. Can you see if you can directly import that package and if it fixes the problem? Thanks!
     
  6. Gamingbir

    Gamingbir

    Joined:
    Apr 1, 2014
    Posts:
    194
  7. DeadlyAccurate

    DeadlyAccurate

    Joined:
    Apr 2, 2013
    Posts:
    186
  8. Gamingbir

    Gamingbir

    Joined:
    Apr 1, 2014
    Posts:
    194
  9. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @Gamingbir,

    We just released a new ProTips version (1.7.5) today that does not include any dependencies. We're hoping this will solve the issues customers are getting with the PackageManager and Collab errors.

    Can you go to Package Manager in your project and update to the 1.7.5 version of ProTips, and see if that fixes it? If it doesn't, please let us know and we can send you a unitypackage that you can import directly into your project.

     
  10. Gamingbir

    Gamingbir

    Joined:
    Apr 1, 2014
    Posts:
    194
    wow thanks for so quick update. it works now no issues.
     
  11. zhepama

    zhepama

    Joined:
    Mar 12, 2015
    Posts:
    5
    Extensions\TooltipExtensions.cs(196,24): error CS0103: The name 'Pointer' does not exist in the current context

    Missing namespace
    using UnityEngine.InputSystem;

    TooltipTrigger.cs:

    public Tooltip Tooltip { get; private set; }

    Can be changed to?

    public Tooltip Tooltip { get; set; }

    Because I need to inherit TooltipTrigger and assign it in a subclass.
     
  12. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @zhepama

    Thanks for letting us know about the error you encountered using the new Input System. We've fixed that issue and published a new version of ProTips on the asset store (1.7.6). And yes, you can change the Tooltip property setter so it is public on the TooltipTrigger component. We've updated it to be this way on the latest release and going forward. So please update, and let us know if you have any issues.

    Everyone,

    We added a new ReadMe file in the Demos folder that walks you through converting over to the new Input System: what needs to be installed from the Package Manager, what needs to be changed in the scene, etc. Below is the ReadMe file contents with a screenshot.

    Converting to the new Unity Input System:

    If you want to switch to using Unity's new Input System, first install the package from the Package Manager ("Input System" by Unity Technologies). It should prompt you to restart your Unity project.

    Once restarted, open the "2. ProTips Demo" scene and select the EventSystem gameobject in the scene hierarchy window. On the Standalone Input Module, you will notice it is complaining about using the Standalone Input Module. Click the button to replace this module with the InputSystemUIInputModule. Also remove or disable the Touch Input Module on the same EventSystem gameobject.



    Now you should be able to run the demo scene and the tooltips should work fine using the new Input System. Note that you will need to do this process on any of the demo scenes you want to convert over to the new Input System.
     
  13. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi everyone,

    ProTips has had a couple of releases recently: versions 1.7.5 and 1.7.6. Here's a list of the changes:

    1.7.6
    • Fixed 'Pointer does not exist' error when using the new Unity Input System.
    • Added a ReadMe that explains how to convert to Unity's New Input System.
    • Made Tooltip property setter public on TooltipTrigger.cs.
    1.7.5

    New Features:
    • Ability to override tooltip positions (see Scene #10 Tooltip Position Override) - There is a new checkbox "Override Tooltip Position" on every TooltipTrigger.
      • Enabling this checkbox will allow you to select more options on how you want the tooltip to be positioned:
        • Mouse Cursor - will lock the tooltip to the mouse cursor on every frame.
        • Transform - will make the tooltip popup over (and follow) the transform you specify.
        • Vector - will make the tooltip popup over (and follow) a vector you specify.
      • You can still chose how you want the tooltip to be positioned (TopRightCorner, BottomMiddle, etc) after overriding its position.
      • Tooltips can be set to popup over (or follow) a SkinnedMeshRenderer, as commonly used for FBX animations.
    Minor Changes:
    • Fixed typo "Tooltip Mananger" in the top ProTips - Quick Setup menu.
    • Added a ReadMe.txt file to explain what to do about the TMP Essentials popup when opening a TextMeshPro scene for the first time.
    • Added code to harden TooltipTrigger against reported NullReferenceExceptions.
    I made a video about how the main new feature (override tooltip positions) works:


    Enjoy!
     
  14. Nihil688

    Nihil688

    Joined:
    Mar 12, 2013
    Posts:
    503
    I am having trouble with the sizing of the popup, it comes up tiny and kinda relative to the button but it doesn't make sense that it's that small. Isn't there a way to handle the size?
     
  15. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi, @Nihil688,

    When we've seen a sizing issue like this, it's usually because either the wrong GuiCanvas is selected on the Tooltip Manager, or the Tooltip Container game object is not positioned correctly in relation to the camera for some reason. The Tooltip Container is the game object that is created automatically at runtime and contains all the tooltips under it. If you run your project and go to the scene view and look in the Hierarchy window, you will see the Tooltip Container:



    While the game is running, you can switch to your Scene view and see what GuiCanvas is selected in the TooltipManager (make sure it's correct), and where your camera that is rendering the tooltips is, in relation to the Tooltip Container (where the tooltips are displayed). If things look wrong at this point, it's just a matter of walking up the hierarchy of gameobjects to find which one isn't in the right place, and why.

    ProTips doesn't change tooltips to make them smaller or larger on the screen. The size of the tooltips is determined by the location of the Tooltip Container as it relates to the camera displaying the tooltips under it. For Screenspace Overlay cameras, visual size usually isn't an issue, since the Tooltip Container will be overlayed and therefore zero distance from the camera. But it gets trickier with World Space cameras. If your camera is far away from the Canvas that displays the tooltips, then they will appear tiny and far away. If the camera is too close, then the tooltips will appear huge and possibly blurry.

    Unfortunately, there are many variables that can cause this to happen: the way your gameobjects are nested/scaled, how your canvas(es) are setup, or how your camera(s) are configured, all plays a big part in how everything looks on the screen. Without looking at your project, I can't say for sure what is causing this issue. But assuming you're not seeing this issue in our demo scenes, I'd use those for comparison troubleshooting. So if your tooltips are being displayed on a Screenspace Overlay canvas, I'd take a look at the "2. ProTips Demo" scene and compare its setup to your project. Or if your tooltips are being displayed on a Worldspace Camera, I'd look at the "3. 3D World Object Demo".

    If you can't find the culprit, feel free to upload your project (just zip the whole project folder up) and send us a link (modelsharkstudio@gmail.com), and we'll take a look at it.
     
    Last edited: Nov 7, 2021
  16. Nihil688

    Nihil688

    Joined:
    Mar 12, 2013
    Posts:
    503
    Thank you for the detailed reply, I have already done all that before posting this here, unfortunately I haven't done anything special to break my scene as your examples pointed out. It's just a button in the hierarchy to which I add the trigger dynamically, I have only 1 overlay canvas and 1 camera which doesn't even move in my game. The popup appears in the right spot, it's just small and small text, I am using CleanSimple (TMP). If I change the asset inside, it becomes bigger but I thought your system does it all automatically like your demo scene which is what I am not getting at the moment.
     
  17. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Ok, please send us a link to your project and I'll take a look at it and see if I can find anything that would be causing you to get the small text and small tooltip. Thanks!
     
  18. unity_0wAzz-BXYtbngg

    unity_0wAzz-BXYtbngg

    Joined:
    Mar 31, 2021
    Posts:
    1
    Has anyone else run into this one?

    TooltipManager could not be found?
    using VS Code....
    Thanks
     
  19. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @unity_0wAzz-BXYtbngg,

    Did you run Window => ProTips => Quick Setup from the top menu bar in the Unity editor? That's what adds the TooltipManager to your scene, so please try that if you haven't already and let me know if you still have issues.
     
  20. pvalium

    pvalium

    Joined:
    Oct 1, 2016
    Posts:
    29
    Is there a way (that doesn't involve modifying the base code) by which I can translate a string from a tooltip? Right now I have had to modify the main class for it, since the functions do not have virtual methods to modify them.
    It would also be cool if it could be easily configured so that the tooltip is displayed on click, and it disappears after x seconds, since for mobile it is more intuitive than having to press the screen to display it.
    Good job
     
  21. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @pvalium,

    I'm trying to understand your questions. Are you asking how to retrieve the text inside a tooltip, translate it from one language to another, and then put the translated text back in the tooltip? If so, I'd probably just change the text on the Tooltip Trigger component. Something like this:

    string unTranslatedText = tooltipTrigger.GetText("BodyText");
    string translatedText = Translate(unTranslatedText, translatedText, Language.Spanish) // << Do your translation here
    tooltipTrigger.SetText("BodyText", translatedText);

    The GetText() method is a new method I added recently for another customer. It hasn't been published to the asset store yet. However, here it is if you want to add it to your TooltipTrigger.cs file:

    Code (CSharp):
    1.         public string GetText(string parameterName)
    2.         {
    3.             // If the list of parameterized text fields doesn't exist, create it.
    4.             if (parameterizedTextFields == null)
    5.                 parameterizedTextFields = new List<ParameterizedTextField>();
    6.             // Check to see if we find a matching field. If so, return its current text value.
    7.             foreach (ParameterizedTextField txt in parameterizedTextFields)
    8.             {
    9.                 if (txt.name != parameterName) continue;
    10.                 return txt.value;
    11.             }
    12.             return null;
    13.         }
    I realize this is changing the base code to add this feature, though. I'm not sure about how to do this without code changes.

    What is the main class you had to modify to get this to work? And what was the modification? That info would help in understanding what you're trying to accomplish.

    Which functions do you wish had virtual methods? I can take a look at those.

    Displaying the tooltip on click instead of mouse over or mouse down is a good feature idea. I'm adding it to our to-do list. Thanks!
     
    Duffer123 likes this.
  22. kuriyoukan

    kuriyoukan

    Joined:
    Sep 12, 2020
    Posts:
    3
    Hi there.
    I would like to update the value of Text dynamically while the Tooltip is out (on hover).

    I found the demo scene of Auto Update Tooltip Fields, and I got as far as setting the link id.
    However, it doesn't seem to be updated or the string keeps getting added.

    I'm writing a code like this
    Code (CSharp):
    1. _text="<link id=\"TryCount\">" + x + "</link>";
    2. trigger.SetText("BodyText", _text);
    These are called when x is changed by ObserveEveryValueChanged in UniRx
     
    Last edited: Jan 20, 2022
  23. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @kuriyoukan,

    Does your "8. Auto Update Tooltip Fields" demo scene work fine? Are you getting any errors logged to the console? I tried the #8 demo scene on my working copy of ProTips and it was throwing an error (Null Reference Exception) that was logged to the console. If you're getting this error, too, then please try removing this line (below) from the AutoUpdateTooltipFields script:



    After I did that, my demo scene worked fine. I will be submitting this update to the asset store to fix it for future releases.

    If that doesn't fix it for you, please let me know.
     
  24. kuriyoukan

    kuriyoukan

    Joined:
    Sep 12, 2020
    Posts:
    3
    Yes, actually I already commented out the code there and demo scene worked fine.
    What I want to do is to apply the text update process even when the popup is displayed.
     
  25. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Can you please upload your project to a cloud service and send me a link to it (modelsharkstudio@gmail.com) so I can take a look at it? Just zip up your entire project folder and upload it to a site like Dropbox, OneDrive, GoogleDrive, etc.

    In the email, please include any additional instructions for getting the scene to work, which scene the issue occurs in, what you're expecting it to do, and what it's not doing correctly. Basically any information about the problem that might help me solve it.
     
  26. kuriyoukan

    kuriyoukan

    Joined:
    Sep 12, 2020
    Posts:
    3
    Oh, thank you. I've emailed you.
     
  27. Grandpa3D

    Grandpa3D

    Joined:
    Jun 23, 2019
    Posts:
    15
    Hi.
    Not sure what I'm doing wrong. I imported version 1.7.6 in a new project using version 2020.3.27f1 with the new input system. The ProTips demo worked fine, except for the 3D world object demo. No tooltip displayed when hovering over the 3D object.
    So I started a new scene in version 2020.3.14f1. The same problem occurred, the tooltip is not displayed when hovering over the 3D object.
    Any idea where I went wrong?
     
    zangad likes this.
  28. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @Grandpa3D,

    Thanks for bringing this to our attention. I get the same behavior with the 3D cube when switching to the New Input System. So this is a bug with ProTips. Fortunately, the fix is pretty simple: just add a PhysicsRaycaster component to your camera. Once I did this, the tooltip worked fine when mousing over the cube. I think the new input system needs the physics raycaster component in order to fire the OnPointerEnter event, which ProTips is using.

    It looks like adding a PhysicsRaycaster to the camera doesn't hurt anything when using the Old Input System, either, so I should be able to add this fix to the next version of ProTips.

    Please let me know if adding the PhysicsRaycaster component doesn't fix it for you.
     
  29. Grandpa3D

    Grandpa3D

    Joined:
    Jun 23, 2019
    Posts:
    15
    Thank you zangad for reminding me about the PhysicsRaycaster. Everything worked perfectly after putting it on the camera. This is an awesome addon. Keep up the great work.
     
    zangad likes this.
  30. LiquidEggProduct

    LiquidEggProduct

    Joined:
    Jul 19, 2017
    Posts:
    3
    Hello, having some issues trying to use ProTips with a Dropdown. I'd like each item in the dropdown to have its own tooltip content. I've tried two methods:

    1. Adding a TooltipTrigger to the dropdown template in the editor, and changing the content via code.
    2. Adding a TooltipTrigger to the dropdown items via code completely.

    It does create the tooltip as expected, but after the dropdown item displays the tooltip, the Tooltip Container game object is deleted from the hierarchy. Any ideas why this is happening?
     
  31. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @LiquidEggProduct,

    Thanks for bringing this to our attention. I took a look at it and was able to reproduce the issue on my end, and I have a fix for it.

    Solution:

    First, here's the fix. Comment out this line in the TooltipManager.cs script, and you should be good to go:



    Reason for the Issue:

    The reason this line causes a problem for the Dropdown control is because the DropdownList (a gameobject child that is created dynamically when the dropdown is opened) contains a Canvas. I'm not sure why...I suspect it is needed for the Viewport or something. Anyway, when the child dropdown options are then hovered over, the piece of code above runs, which changes ProTips' GUI Canvas to be the DropdownList gameobject. That's bad, because the DropdownList gameobject is a dynamically created object that (as you mentioned) is deleted once the dropdown is closed, and it takes ProTips' TooltipContainer with it. And ProTips doesn't work without that TooltipContainer.

    So, the reason I ever added that line is because some customers were using lots of nested and dynamic Canvases in their projects, and they needed ProTips to automatically figure out which canvas was the correct one. In all of these cases, the correct Canvas was the immediate parent one. So that line of code fixed their issue, but now I'm thinking it shouldn't be in ProTips, because it has the potential to cause hard-to-find bugs. So I will remove this line from future ProTips releases.

    Additional Notes:

    You probably don't need this, since it sounds like you already have a solution for dynamically adding Dropdown List Items and setting their tooltip text through code. But while I was setting this up, I wrote a script that attaches to the Dropdown which allows you to specify what tooltip text goes with each dropdown item. It's a simple script - it just assigns the tooltip text to each option ordinally, so it can't handle dynamic dropdown items or anything complex. It also addresses an issue I found where you get a flickering tooltip caused by the gap between the dropdown and the viewport list.

    Anyway, here is the script in case someone is trying to do something similar. And we'll include all of this in the demo scene for the next ProTips release.

    DropDownTooltip.cs

    Code (CSharp):
    1. using UnityEngine;
    2.  
    3. namespace ModelShark
    4. {
    5.     /// <summary>
    6.     /// Put this script on your Dropdown control. Then, you can add an Option Tooltip text for each of the items in your dropdown.
    7.     /// Note: this only works with a simple list added through the editor, not a dynamic list of dropdown items added through code.
    8.     /// It also assumes you are using a simple tooltip that uses the %BodyText% parameter field. You'll have to change the code a
    9.     /// little if you're using a more complex tooltip.
    10.     /// </summary>
    11.     public class DropDownTooltip : MonoBehaviour
    12.     {
    13.         public string[] optionTooltips;
    14.  
    15.         private TooltipTrigger parentTooltipTrigger;
    16.  
    17.         public void Start()
    18.         {
    19.             parentTooltipTrigger = GetComponent<TooltipTrigger>();
    20.         }
    21.  
    22.         public void Update()
    23.         {
    24.             if (transform.childCount > 3) // dropdown list is open
    25.             {
    26.                 // Disable the parent tooltip (if any) while the dropdown list is open.
    27.                 // This prevents a flickering tooltip caused by the gap between the dropdown control (containing the
    28.                 // dropdown tooltip) and the dropdown list (containing tooltips for each dropdown option item)
    29.                 if (parentTooltipTrigger != null && parentTooltipTrigger.enabled)
    30.                     parentTooltipTrigger.enabled = false;
    31.  
    32.                 // Find the TooltipTriggers on the Option Items in the DropDownList and assign their tooltip text accordingly.
    33.                 TooltipTrigger[] tooltipTriggers = GetComponentsInChildren<TooltipTrigger>();
    34.                 int currOption = 0;
    35.                 foreach (TooltipTrigger tooltipTrigger in tooltipTriggers)
    36.                 {
    37.                     if (tooltipTrigger == parentTooltipTrigger) continue; // don't change the parent tooltip (if any).
    38.                     tooltipTrigger.SetText("BodyText", optionTooltips[currOption]);
    39.                     currOption++;
    40.                 }
    41.             }
    42.             else
    43.             {
    44.                 // Re-enable the parent tooltip trigger once the dropdown list is closed.
    45.                 if (parentTooltipTrigger != null && !parentTooltipTrigger.enabled)
    46.                     parentTooltipTrigger.enabled = true;
    47.             }
    48.         }
    49.     }
    50. }
    Results:

     
    Last edited: Mar 16, 2022
    Duffer123 and LiquidEggProduct like this.
  32. LiquidEggProduct

    LiquidEggProduct

    Joined:
    Jul 19, 2017
    Posts:
    3
    Thanks for the quick and thorough reply, Zangad! I'll try this when I get time!
     
    Duffer123 likes this.
  33. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Over a year ago, I imported and easy installed Pro Tips to my 2018.4 project. It was working fine. I ignored it and worked on other features in my project, but now, the system is not showing tool tips. The install seems good. The demo scenes work fine. I have a tooltip manager in my scene and tooltip triggers on a couple of GOs that don't show tooltips. What should I be checking?

    Note: I saw above some mention of missing body text fields. Seems to me the body text field does not appear until a tooltip style is selected. In my broken setup, the style picker no longer points to your provided stye prefabs, but they can be dragged in from assets window.
     
  34. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @wood333,

    If you have a tooltip trigger that is not showing tooltips, I would first check my Console Log to see if there are any error or warning messages. Even what seems to be an unrelated warning or error message can stop the game loop in its tracks and prevent processes from happening down the line.

    So, assuming you have a clean console log with no warnings/errors, the next thing I would check is, what is the Tooltip Container doing while hovering over a tooltip in the scene? To check this, you'll need to run the scene and switch to the Scene view window so you can see the Tooltip Container in the hierarchy.

    By default, it will have some deactivated tooltips underneath it. But when you hover over a tooltip trigger, it should activate one of the tooltip game objects under it. If it doesn't activate a tooltip gameobject under the Tooltip Container, then something is preventing that from happening - either the OnPointerEnter event isn't firing (maybe a missing Physics Raycaster on the camera?), or something else is preventing the tooltip from being activated and positioned.

    If the tooltip game object is activating but you don't see it, then it may not be getting positioned correctly. Try to find where its location is in the scene, and what would make it be positioned there (what canvas is it using for the GuiCanvas? are you using nested canvases? are there any other specific complexities in your scene/project that might make it not position correctly?)

    I hope this helps you troubleshoot the issue. If you get stuck, feel free to zip up your project at the root level and upload it to a hosting service (DropBox, OneDrive, GoogleDrive, etc) and send us a link to modelsharkstudio@gmail.com and we'll take a look at it. (Note: you can delete the /Library, /Logs, /obj, and /UserSettings folders before zipping to save space.)
     
  35. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Seems the ToolTip Container is doing nothing.
    Tooltip Container.PNG
     
  36. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I see no errors in the console that should present an issue, though I will continue to consider them. I have ongoing errors that are known, and have not caused issues.
     
  37. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I was comparing my scene to your 3D Demo and there are differences. Your container is under your Canvas. I can't find a canvas dedicated to PTT, nor an appurtenant container in my hierarchy. I do have several unrelated canvasses dedicated to specific assets, none nested. I find no PTT container. I do have the Tooltip Manager in the hierarchy. My theory is that the canvas with your setup was deleted, damaged or lost for an unknown reason and that sank the ship. Should I delete the Tooltip manager object and reinstall?
     
    Last edited: Mar 29, 2022
  38. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @wood333,
    It sounds like there's a lot going on in your project. I can try to help, but since I don't have your project to look at, I can't reproduce or troubleshoot the issues you're seeing. Some of those errors or warnings could be related, scripts could be missing or modified, or there could be missing component references (like a canvas that is assigned as the GuiCanvas but doesn't exist in the scene anymore). There are so many variables, and without being able to see your project and step through (debug) it, we're limited in our ability to help.

    So like I mentioned before, feel free to send us your project and we'll take a look at it and try to find out what's going on. If that's not possible, then yes, you could try completely removing ProTips from your project and reinstalling it. But it doesn't sound like you're getting any errors or warnings from ProTips, and if there was a missing script, you'd be getting errors from ProTips. Also, removing and reinstalling ProTips won't change anything that may have been modified in your scene, so if the problem lies there, reinstalling won't fix it. And since you mentioned the ProTips demo scene works fine in your project, then ProTips is probably installed correctly and there are no missing scripts.
     
  39. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Two things to say.

    1. Only 4 actual red error warnings remain. They relate to the invector/horse animset pro integration, and have never been more than an annoyance.

    2. I believe my troubles with PTT began when I implemented Emerald AI combat text. Lots of UI. I think I need to lash ProToolTip to a single dedicated canvas. I have an older version. Does the latest relesse have a GUI Canvas slot in the TTManager? I think I should import PTT latest version and give that a try.
     
  40. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    The tooltip container is attaching to the Emerald AI Combat Text Canvass, and it only works intermittently. To make it stable, I must disable combat text in all Emerald AIs. If I disable all the Emerald AIs themself the Tooltip Container attaches to a Quest Machine canvass under Do Not Destroy. I do not understand why this is the case.

    Years ago, you had a Tooltip Manager with a slot for hooking up the canvass. Why did you abandon that? The tooltip container seems a bit fickle, attaching itself to different canvasses. Does it have a preference? I saw some king of get set in the tooltip manager script with notes on projects with more than one canvass (like me), but I'm not a programmer, and my knowledge is insufficient to make use of it.
     
  41. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    What could cause the copper simple child of the container to vanish? Or the container itself to vanish?
     
    Last edited: Mar 31, 2022
  42. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @wood333,

    Yes, the latest release of ProTips has a GUI Canvas field that you can assign in the Tooltip Manager.



    Ah, ok, yes, this could be the root of the issue. There is a bug in the current version of ProTips that was fixed about 2 weeks ago (details here) but the fix has not been released to the Asset Store yet. If you want to fix it on your end instead of waiting for the next ProTips release, you can do so easily by commenting out this line in the Tooltip Manager script:



    This is what is likely causing the tooltip container to attach itself to the Emerald AI canvas. If you comment out that line, ProTips will stop trying to find the correct canvas and will respect the one assigned in the GUI Canvas field. Even after making this change, if no canvas is assigned to the GUI Canvas field, it will still try to find the correct one.
    I'm not sure what you mean by "vanish". Do you mean it is not visible on the screen but is still in the scene hierarchy as a disabled gameobject? Because that's how the tooltip container and tooltips work. The tooltip gameobjects are only enabled if a tooltip is currently active and should be shown. The tooltip container gameobject is only enabled if any of the tooltips under it are active and should be shown. Otherwise, those gameobjects are disabled to improve performance.

    If you mean it vanishes from the scene hierarchy, then it may have just gotten moved as a child under another canvas. ProTips moves the TooltipContainer game object under the canvas that is assigned in the GUI Canvas field. So if it incorrectly assigned the wrong canvas as the GUI Canvas, the TooltipContainer will be moved under that canvas, and it would appear that it just vanished from the scene hierarchy when in fact it was just moved to the wrong place. If this is the case, try that fix I mentioned above, and it should stop trying to find the right canvas when it has already been set in the GUI Canvas field on the Tooltip Manager.

    Hope that helps!
     
    wood333 likes this.
  43. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I do not get the latest release. I just deleted the asset folder and unity package folder and downloaded and all the scripts in the project folder are date modified 2-16-2017. In Unity version 2018 my assets did not show a new release available, ever. For some reason, the asset store will only give me the old release. Nor can I download it into a newer version (2019) because of a Unity bug in the HUB.

    Is there any way I can get a copy of the latest version from you directly. I even tried to purchase a second copy, but the asset store would not let me do it in 2019. I would be happy to purchase another copy directly from ModelShark. The issue has never been with ProTips, it's always been a Unity issue where the asset store would not offer me any upgrades past the 2017 version.
     
    Last edited: Apr 5, 2022
  44. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    F.Y.I. Out of curiosity, I did a brand new download of DestroyIt into a unity 2018 project where it was never installed. Those scripts show date modified in windows as 3-17-2019. The Unity store may not be correctly setup for downloading your assets?
     
  45. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @wood333

    No problem, I sent you a private message with a link to download the latest version of ProTips directly. Please let me know if you have any issues with it.
     
    wood333 likes this.
  46. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    The package installed fine with no errors, but on playing the 3d demo, none of the scripts are populating the components. The scripts are present in the assets folders, but yellow warnings of "referenced script on this behavior is missing" appear on play, and I can see the scripts are missing from the inspector components. Any thoughts?

    Note: Unity 2018.4.36f1 and Win 10 I dropped the new package on Assets at the top of the Project Tab.

    Note 2: Even the Event System scripts are missing

    Note3: I have DestroyIt in the same project. Its demos work fine.

    Note4: Project does not have an associated ProjectVersion txt file.
     
    Last edited: Apr 5, 2022
  47. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Dropped the new package in Unity 2019. Same result.
     
  48. zangad

    zangad

    Joined:
    Nov 17, 2012
    Posts:
    355
    Hi @wood333,

    I see what you're talking about. I created a new 2018 Unity project and imported the latest version of ProTips into it, and I got the same issue with the demo scenes. However, I think this shouldn't affect your existing Unity 2018 project, since the issue seems to be with serializing the components in the imported demo scenes. ProTips shouldn't overwrite anything in your existing project except the scripts, which should work fine in Unity 2018.

    I made a video to explain in more detail what is going on, and how to get it working for your Unity 2018 project.

    Video:


    DestroyIt's demo scenes probably work fine in 2018 because I haven't updated the Canvas, GraphicsRaycaster, LayoutElements, etc, in years because most of the work in DestroyIt is physics/script related. Much of the work in ProTips is UI-related. But that's just a guess.
     
  49. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Thank you for the very detailed explanation. I have the new scripts installed, and the tool tip system is focused on the dedicated canvas I created and slotted into the manager. Well done and many thanks!
     
    zangad likes this.
  50. Derptastic

    Derptastic

    Joined:
    Mar 11, 2017
    Posts:
    15
    Hey there!

    Now, embarrassingly enough, I don't know if the problem was always there or if I only noticed it after updating to latest, because I do extra testing to ensure everything works, but:
    The tooltips on 3D world objects only appear if the camera is within a certain angle range (not rotated too high or too low). Here are two examples, and the object highlight appears when a mouse is over an object. One is within the 'acceptable' camera angle and produces a tooltip, the other - isn't:

    AngleYes.png

    AngleNo.png
    (the mouse isn't visible because it gets hidden on a Win+Shift+S crop command, but I guarantee it's on top of the object)

    Where should I look into to debug this, or do you have any ideas / suggestions as to what it might be?