Designing A Responsive Tooltip System in Unity

Поделиться
HTML-код
  • Опубликовано: 20 сен 2024
  • Tooltips are a fundamental part of Game UI design but it can be tricky to make them look good, let's take a look at how to design a smart and responsive Tooltip system that will resize and position itself on screen relative to its content!
    Thanks to Kenney for the Assets! www.kenney.nl/...
    Creating A Debug Cheat Console: • Creating a Cheat Conso...
    Creating a UI Line Renderer: • Creating a UI Line Ren...
    Making UI that Looks Good: • Making UI That Looks G...
    --------------------------------------------------------------------------------
    Want to support the channel?
    ▶️ Help fund new episodes by joining the Patreon - / gamedevguide
    Use these links to grab some cool assets from the asset store:
    Get the Must Have Assets! - assetstore.uni...
    Free Unity Assets! - assetstore.uni...
    New on the Asset Store! - assetstore.uni...
    Top Paid Asset Store Packages - assetstore.uni...
    Asset Store Partners - assetstore.uni...
    --------------------------------------------------------------------------------
    Socials and Other Stuff:
    • Subscribe - www.youtube.co...
    • Join the Discord - / discord
    • Twitter - / gamedevguideyt
    • Facebook - / gamedevguideyt
    • Instagram - / gamedevguideyt

Комментарии • 208

  • @smally5739
    @smally5739 3 года назад +57

    The UI god, understanding the rectransform class and other ui components has been one of my biggest challanges with unity tbh, and there's very little resource on this, thanks for the tutorials!

  • @AllDayBikes
    @AllDayBikes 3 года назад +43

    me: "huh thats a thumbnail I don't remember --oh new game dev guide video, finally!"
    I've binged the others too many times in the last 2 months haha

  • @DamageSoftware
    @DamageSoftware 9 месяцев назад +11

    Great guide!
    I modified a little the logic that sets the pivot of the tooltip in order to position it relative to the mouse cursor depending of the screen quadrant.
    private void Update()
    {
    var position = Input.mousePosition;
    var normalizedPosition = new Vector2(position.x / Screen.width, position.y / Screen.height);
    var pivot = CalculatePivot(normalizedPosition);
    _rectTransform.pivot = pivot;
    transform.position = position;
    }
    private Vector2 CalculatePivot(Vector2 normalizedPosition)
    {
    var pivotTopLeft = new Vector2(-0.05f, 1.05f);
    var pivotTopRight = new Vector2(1.05f, 1.05f);
    var pivotBottomLeft = new Vector2(-0.05f, -0.05f);
    var pivotBottomRight = new Vector2(1.05f, -0.05f);
    if (normalizedPosition.x < 0.5f && normalizedPosition.y >= 0.5f)
    {
    return pivotTopLeft;
    }
    else if (normalizedPosition.x > 0.5f && normalizedPosition.y >= 0.5f)
    {
    return pivotTopRight;
    }
    else if (normalizedPosition.x

  • @JasonSmith-jv7wl
    @JasonSmith-jv7wl 3 года назад +26

    I gotta say, toggling on and off a layout element to handle sizes smaller than your max size is just genius. So many projects at work I have written complicated code to do the same thing, but this is just so much easier.
    I didn’t actually care about the tooltip system when watching this, (I’ve coded up similar systems a lot) but it is gems like the layout element trick that made me want to check this out. Great problem solving there.

  • @travlake
    @travlake 3 года назад +41

    If I'm not mistaken the 3:54 layoutElement.enabled trick requires manually matching your chosen characterWrapLimit to your chosed preferredWidth in the Layout Element. An easy way to avoid this is using "layoutElement.enabled = Math.Max(headerfield.preferredWidth, contentField.preferredWidth) >= layoutElement.preferredWidth;
    " instead

    • @treymtz
      @treymtz 8 месяцев назад

      Goated comment for saving me some time thinking about something slightly annoying, but not annoying enough to deal with later

  • @Devsplorer
    @Devsplorer 3 года назад +42

    I couldn't track how those 9 minutes passed, the explanation was so smooth! Great video, thanks for sharing 😊

  • @abo1428
    @abo1428 3 года назад +21

    „It‘s LEANTWEEN time“ 😂
    Great video as always! Hope to see a new video soon

  • @reggieisnotadog4841
    @reggieisnotadog4841 2 года назад +14

    Great tutorial! I learnt a lot. If anyone is looking to get this a bit more 'mouse snaps to corners of cursor to stay on screen' rather than have be based on screen position average, the below might be helpful to you in place of the rectTransform positioning bit of the tutorial:
    Vector2 position = Input.mousePosition;
    float pivotX = position.x / Screen.width;
    float pivotY = position.y / Screen.height;
    float finalPivotX = 0f;
    float finalPivotY = 0f;
    if (pivotX < 0.5) //If mouse on left of screen move tooltip to right of cursor and vice vera
    {
    finalPivotX = -0.1f;
    }
    else
    {
    finalPivotX = 1.01f;
    }
    if (pivotY < 0.5) //If mouse on lower half of screen move tooltip above cursor and vice versa
    {
    finalPivotY = 0;
    }
    else
    {
    finalPivotY = 1;
    }
    tooltip.rectTransform.pivot = new Vector2(finalPivotX, finalPivotY);
    tooltip.transform.position = position;
    ----------------------------------------------------------------------------------
    SMOOTH TWEENING IN UPDATE:
    If you want the above to move smoothly rather than completely snap you can call a DoTween sequence to position it in the Tooltip's update (just be sure if you do this, to kill the tween sequence if already running and then again on hide or you'll get wonky behaviour). Sorry, I don't know LeanTween but I'm sure you can do the same with it.
    So in the update of the tooltip itself I replace the "tooltip.rectTransform.pivot = new Vector2(finalPivotX, finalPivotY)" bit with:
    finalPivot = new Vector2 (finalPivotX, finalPivotY);
    if (rectTransform.pivot != finalPivot)
    {
    moveSequence.Kill();
    moveSequence = DOTween.Sequence()
    .Join(DOTween.To(() => rectTransform.pivot, x => rectTransform.pivot = x, new Vector2(finalPivotX, finalPivotY), .5f))
    .Join(DOTween.To(() => rectTransform.pivot, y => rectTransform.pivot = y, new Vector2(finalPivotX, finalPivotY), 1f))
    .SetRelative(false)
    .Play();
    }
    moveSequence is a DoTween Sequence variable I declared at the top of my code
    Hope that helps someone!

    • @chengkuangyu
      @chengkuangyu 2 года назад +2

      Thanks for the solution, great topping on the original version.

    • @megatinystudio8111
      @megatinystudio8111 2 года назад

      Exactly what I was looking for, thank you!

    • @spartythespart
      @spartythespart Год назад +1

      thanks i was thinking the exact same thing and this code worked perfect for it

  • @Pedro_Marangon
    @Pedro_Marangon 3 года назад +35

    3:54 another way of doing line 24 is to just set the layoutElement.enabled to the condition to be true (since if the conditions are true, then it sets to true and the opposite happens too), like:
    layoutElement.enabled = (headerLength > characterWrapLimit || contentLength > characterWrapLimit);

    • @frithjofmeinke7789
      @frithjofmeinke7789 3 года назад +8

      That actually bothered me too.

    • @binaryparrot3352
      @binaryparrot3352 3 года назад +9

      I paused the video there to find this comment. It annoyed me too much.

    • @travlake
      @travlake 3 года назад +13

      Or layoutElement.enabled = Math.Max(headerfield.preferredWidth, contentField.preferredWidth) >= layoutElement.preferredWidth;
      This has the advantage of obviating the "characterWrapLimit" parameter, which is annoying to calibrate. Instead it just uses the LayoutElement's preferred width you set.

    • @zoltan9498
      @zoltan9498 3 года назад

      Agreed. no need of using ternary operator here

    • @userAS456
      @userAS456 3 года назад

      @@zoltan9498 need, becouse if component disabled all responce from him is null.

  • @Only4GamersXyz
    @Only4GamersXyz 2 года назад +3

    Hello,
    How to use LeanTween.delayedCall when game is paused (Time.timeScale = 0f)? Because tooltip is not appearing when the game is paused.

  • @rasmusskovbo7572
    @rasmusskovbo7572 2 года назад +2

    Great guide!
    Something you didnt touch on that i used myself:
    If you want to add the tooltip to objects at runtime (e.g. for inventory items instantiated from a base of Scriptable Objects), you can use AddComponent and set the title, content, etc afterwards with info from the SO.

  • @WesleySales1
    @WesleySales1 3 года назад +2

    The wait is always worth it. Thank you very much for all these GREAT Game Dev Guide tutorials!

  • @wildKawa
    @wildKawa 3 года назад +17

    Thanks for the tutorial. This might be personal preference but the visual cuts are a biiiit fast for me. Stopped counting how often i had to stop the video just to see what was happening. I like that it doesn't waste a lot of time but especially the drag and drop stuff is hella fast.

    • @Malaron2
      @Malaron2 6 месяцев назад

      I had to slow it down to half speed. Makes it more entertaining also since it sounds like a drunk person is explaining programming to you. (due to slow speech) :P

  • @mortum2614
    @mortum2614 2 года назад

    Came here for ToolTips... stayed for all the layout element tricks.
    Finding this video made my week!

  • @jowsey
    @jowsey 2 года назад +1

    Hey, I doubt you'll see this but I just wanted to say this is by far my favourite game dev channel on RUclips. You make everything so clear and easy to understand, and cover so many bases and edge-cases that others usually wouldn't. Thank you so much for this, you've helped me a ton.

    • @GameDevGuide
      @GameDevGuide  2 года назад +1

      Thank you so much for the kind words! I'm glad you find the videos useful. ❤️

  • @danielstone4713
    @danielstone4713 3 года назад +2

    This is a huge puzzle piece for the project I'm working on, with such a clear and concise explanation. Thank you so much!

  • @mrcreepypl
    @mrcreepypl 3 года назад +23

    Honestly though, how the f*** do you not have a milion subscribers already!? I really don't get it, your videos are much higher quality than Brackeys (in my opinion).

    • @genericmeme
      @genericmeme 3 года назад +6

      Are you sure you're not just biased because Brackeys mostly targets(/targeted...) total beginners and this channel doesn't?

  • @MohammadFaizanKhanJ
    @MohammadFaizanKhanJ 3 года назад

    I developed a custom tooltip system long ago but I was unaware of how to manage its pivot according to the screen width. Your video save me thanks matt.

  • @vitiet8229
    @vitiet8229 3 года назад +5

    At 3:57, line 24, it's better to use
    layoutElement.enabled = headerField.preferredWidth > layoutElement.preferredWidth || contentField.preferredWidth > layoutElement.preferredWidth;
    As you're comparing the preferred size of TMP to the Layout Element preferred size rather than arbitrary text length which does not work for when you use special TMP features such as HTML color or Sprite asset.
    Hope this helps.

  • @jeffreyjumisko5165
    @jeffreyjumisko5165 3 года назад

    I'm often blown away by how beautifully made you videos are. Excellent instruction. Thank you!

  • @TrueIndian
    @TrueIndian 3 года назад +1

    its LeanTween time - one more useful video! Thanks

  • @GamesBySaul
    @GamesBySaul 3 года назад

    This has been incredible! Thank you so much for making it! :D I love how you explain extra things such as doing it for gameobjects or how to get information for what text to display, it's greatly appreciated :)

  • @docien7342
    @docien7342 3 года назад +1

    your UI videos are always fantastic. doubly so because it can be a bit hard to find actually useful UI info sometimes!

  • @chengkuangyu
    @chengkuangyu 2 года назад

    I Had developed something similar to this before, but your solution is way more elegant and cleaner.
    Great Job!

  • @MaximumSpice
    @MaximumSpice 2 года назад

    Fantastic tutorial, super well spoken, edited and the code + explanations are great man! Will be implementing this tonight!

  • @legitchrisv
    @legitchrisv Год назад +2

    For those whose Tooltip image/text shows on Start, keep the Tooltip canvas active before playing, but turn off the Tooltip GameObject. When you hover over the items, the tooltip will show and hide when you exit. This will stop the Tooltip from showing when you start playing and are not hovering over anything.

  • @martynawasiluk1405
    @martynawasiluk1405 3 года назад

    Thank you! This came at JUST the right time - I've been putting off implementing tooltips to my game, and this is a MUCH better way than the one I've been using so far. I love it! Thank you! Please keep doing these.

  • @thehab
    @thehab 3 года назад +1

    You, my friend, are some kind of sorcerer! Absolutely banging video. great content. Thank you so much! SUBBED.

  • @EllieHatesCake
    @EllieHatesCake Год назад +13

    Sure this will be useful to someone... it sets the pivot of the tool-tip so it is positioned next to the mouse. This keeps it on the outside of the tool-tip at all times, so you can clearly read the text. Similar to how it is displayed at the end of the video.
    Vector2 position = Input.mousePosition;
    float x = position.x / Screen.width;
    float y = position.y / Screen.height;
    if (x = 1 - y) //right
    Rect.pivot = new Vector2(1.1f, y);
    else if (x = 1 - y) //top
    Rect.pivot = new Vector2(x, 1.3f);
    transform.position = position;

    • @1mortale
      @1mortale Год назад +1

      Thank you for your comment. I can confirm it works

    • @tabbycatgames31
      @tabbycatgames31 11 месяцев назад +1

      Thank you a lot !

    • @apemant
      @apemant 11 месяцев назад +1

      Thanks!

    • @VegaP6
      @VegaP6 10 месяцев назад +1

      this looks great, thank you!

  • @Brademmerson
    @Brademmerson 3 года назад

    This is exactly what I needed, and your video arrived just in time. Thanks man!

  • @monsume123
    @monsume123 3 года назад

    I love you man! Awesome editing, clear explanation, clean coding 5/5 will watch again

  • @seanloughran6714
    @seanloughran6714 2 года назад +1

    This was awesome. I hate UI/UX, so hard to do right, but you make it look simple!

  • @Pedro5antos_
    @Pedro5antos_ 3 года назад

    Awesome, awesome, awesome!! Your tutorials are next level, thanks, buddy!

  • @huseyin.goktas
    @huseyin.goktas 3 года назад

    Thank you. Simple, elegant, and useful. Making clear UI is very important for a successful game.

  • @rickloyd8208
    @rickloyd8208 3 года назад

    Dynamic pivot was awesome solution, thanks for the truck!

  • @cesargamedev716
    @cesargamedev716 2 года назад

    I developed a system with tooltips for a card game that's currently in steam when I worked in it but with all of this I think I'd make a better one using this knowledge, really awesome!

  • @synamardo
    @synamardo Год назад +1

    Still a wonderful guide. Thanks a lot!

  • @Hymnal27
    @Hymnal27 3 года назад

    Great video, I really appreciate your concise editing!

  • @ginoantenucci6424
    @ginoantenucci6424 2 года назад

    I went through alot of diffrent tutorial and all the features that this one had and boy is this easier Very underaterd

  • @Apc7th
    @Apc7th 3 года назад +1

    Your Channel is doing the Lords work. ty

  • @TheBritishSwans
    @TheBritishSwans 3 года назад

    Really nice video, will definitely be one I keep referring back to whenever I want tooltips :D

  • @pandaengine
    @pandaengine 3 года назад

    Definitely gonna use it someday! I'm currently building a game for mobile, so it may be unnecessary. Tho I still learned something. I didn't know that you can use content size fitter to adjust the recttransform automatically. Definitely a helpful thing.
    Keep up the great work man.

  • @Solanaceously
    @Solanaceously 3 года назад

    Great as always Matt

  • @150zero150
    @150zero150 3 года назад +3

    4:33 If your copying the code over, be sure to keep the "static" on the Show(), I was getting a CS0120 error for a bit.

  • @bischoffdev
    @bischoffdev 3 года назад +4

    Hi, instead of using a ternary operator, you can simplify it like this:
    layout.enabled = headerLength > characterWrapLimit || contentLength > characterWrapLimit;

  • @MewzikMaker
    @MewzikMaker 3 года назад +3

    I was having trouble getting the tooltips to show on non-UI objects, eventually discovered this was due to me using unities new input system. The solution was to add a physics raycaster component to the camera. Now pointer events (such as OnPointerEnter/OnPointerExit) can be called on non-UI objects without needing OnMouseOver() and OnMouseExit() in the tooltip trigger script.

    • @SwagGrandma
      @SwagGrandma 2 года назад

      Thank you for sharing your solution to this!

  • @alyo7774
    @alyo7774 2 года назад

    Thank you! So crisp and useful!

  • @LuRybz
    @LuRybz 2 года назад

    Amazing work! Thank you for sharing!

  • @LilayM
    @LilayM 3 года назад

    I'm actually using this in my current prototype, thank you

  • @jenskendl7408
    @jenskendl7408 3 года назад

    Great video - as always!

  • @Only4GamersXyz
    @Only4GamersXyz 2 года назад +1

    2:54 tooltip image not adjusting height in my case if disabling header or content object. Any idea why this happening? I watched videos 10+ times, i can't find anything that I missed. 🙏🙏🙏

    • @mrcryptographic4803
      @mrcryptographic4803 2 года назад +1

      You need a source image and the image type Sliced in the tooltip.

  • @vasil-yt
    @vasil-yt 3 года назад +1

    Love the UI videos

  • @serj_1264
    @serj_1264 3 года назад

    Thank you very much for sharing all these amazing contents.

  • @masterkonni0594
    @masterkonni0594 3 года назад

    Great video👍, love the ui series.

  • @OwenTheProgrammer
    @OwenTheProgrammer 3 года назад +3

    as a general programming tip, if you are going to do anything life (statement) ? true : false, the statement itself returns true or false
    so the code: layoutElement.enabled = (headerLength > characterWrapLimit || contentLength > characterWrapLimit) ? true : false;
    can be: layoutElement.enabled = (headerLength > characterWrapLimit || contentLength > characterWrapLimit);

  • @CyberStudios
    @CyberStudios Год назад

    Thanks this was very helpful!

  • @ludwintor4986
    @ludwintor4986 3 года назад +9

    Hello! Can you make a tutorial in which objects in a layout group move smoothly, and not just jump after removing or adding an element?

  • @MrMrn87
    @MrMrn87 3 года назад

    This man is a hero we don't deserve

  • @mnnm1989
    @mnnm1989 3 года назад

    Wow, what a great tutorial. Really well done and thanks a lot :)))

  • @VaupellGaming
    @VaupellGaming 2 года назад +1

    Lovely video, enjoyed this.
    Thanks..
    one note i found.;
    new inputsystem takes 2 lines..
    get the inputsystem and read the value ;) ohh and the value is a vector3 not 2.
    Using UnityEngine.InputSystems;
    get the value as such.
    Vector3 position = Mouse.current.position.ReadValue();

  • @STARasGAMES
    @STARasGAMES 3 года назад

    Amazing video. Love it!

  • @ghostriley22
    @ghostriley22 3 года назад

    Very helpful!! Thank you mate!

  • @NightMareJP99
    @NightMareJP99 3 года назад

    Lmao, the LeanTween time cracked me up. Btw nice tutorial

  • @CodemasterJamal
    @CodemasterJamal 3 года назад +1

    This is a good tut. I could use this.

  • @andreperegrina
    @andreperegrina 2 года назад +1

    If someone else is using the new input system and trying to OnPointerEnter on a sprite, you have to add a Physics 2D Raycaster to your camera and a collider to the sprite

  • @LION303200
    @LION303200 3 года назад +4

    there are some missing info's in the video, after the pivots / screen, which moves whenever the cursor get close to screen edges, and then at the end of video suddenly the tooltip still in the next cursor ? idk how?

  • @veselos27
    @veselos27 3 года назад

    Thanks for the video, it helped a lot!

  • @Koltayy
    @Koltayy 3 года назад

    what a nice tutorial, ty for the great content :D

  • @OnlyEsquite
    @OnlyEsquite 3 года назад

    This is amazing. Thank you!

  • @rootth7113
    @rootth7113 11 месяцев назад

    Just AWSOME

  • @whiterabbit6133
    @whiterabbit6133 3 года назад

    Really excellent videos!

  • @joymagine
    @joymagine 5 месяцев назад

    nice easy concise thanks alot great stuff thanks

  • @Merivio
    @Merivio 2 месяца назад

    Also using static means Unity can't serialize it, so if you modify code and have Unity hotswap it while the game is running, you'll lose the tooltip reference. A fix for this is to put current = this inside Update() as well.

  • @srivatsajoshi4028
    @srivatsajoshi4028 3 года назад

    Great video. Commenting for the algorithm

  • @negativegamer8781
    @negativegamer8781 2 года назад

    Awesome video !
    I actually ended up making something very similar for Ludum Dare 50 this week-end. 🤣

  • @xAjido
    @xAjido Год назад +2

    Couple issues/thoughts. When my tooltip first enables and shows up on the screen, something looks off about it. Almost like it's enabling first then repositioning which I can notice. The other minor thing is the content/header strings in the TooltipTrigger script should have the [TextArea] header for easier entering and formating of information.

  • @greenbear9790
    @greenbear9790 3 года назад

    This is awesome!

  • @ajeybharat
    @ajeybharat 11 месяцев назад

    you deserve more likes.

  • @treymtz
    @treymtz 8 месяцев назад

    IMPORTANT: IF YOU HAVE IT LINGER PAST THE OBJECT NOT BEING HOVERED OVER:
    In the Tooltip_Trigger script, if the object gets disabled or destroyed before OnPointerExit gets called, it will stay on your screen until you hover over another tooltip trigger.
    TO FIX THIS: Simply make an OnDisable() or/and OnDestroy() method in the Tooltip_Trigger to Hide() the Tooltip as well.

  • @AllDayBikes
    @AllDayBikes 3 года назад +1

    Yuh' Know, I was skeptical of LeanTween because I hate using packages that I didn't make. But Between this, and the fade with Leantween.alphaCanvas. It was super easy to do compared to writing my own coroutines or learning invoke etc... Thanks again

  • @FalcFalcFalcFalc
    @FalcFalcFalcFalc 3 года назад

    excellent tutorial, thank you

  • @Eculeus007
    @Eculeus007 3 года назад

    Celebrate your success of your tutorial! ;)
    If you could do a tutorial about the country lines, like 0:36 , that would be great.

  • @herlantmajor5883
    @herlantmajor5883 3 года назад +1

    Never saw that kind of like/dislike ratio, well deserved :)

  • @PeterJohnson76
    @PeterJohnson76 3 года назад +2

    I've followed this and have no errors in my code however the tooltips wont appear? Or if I enable the canvas in the inspector the tool tip is permanently showing. I get errors object reference not set to instance of object, making reference to current.tooltip.gameObject.SetActive(false); in the Tooltipsystem script

  • @simonallen6274
    @simonallen6274 2 года назад

    [Multiline()] is how he got the bigger text area in the editor, just above public string content; in TooltipTrigger script. You can see it at 8:05 in the video.
    When I got to transform.position = position; in the Tooltip script, my tooltip disappeared. What happened was that I was using a camera to put the overlay to fit game screen, so the tooltip was appearing miles away for some reason.
    Once I put the Tooltip Canvas -> Canvas component -> Render Mode back to SCreen Space - Overlay, it was fine. I had to reset the transform value on the tooltip too to put it back where it should be.
    There's probably a proper way to make it work with a screen space overlay set to camera, but it worked with that little fix anyway.

  • @joshuacantie2007
    @joshuacantie2007 3 года назад +2

    How is he able to get a margin on the left and right of his text with the Content Size Fitter? I keep trying to rearrange my canvas image but the text is still really close to the edges.
    EDIT: He added a padding of "10" to each element in the Vertical Layout Group, just saw that.

  • @あれくす
    @あれくす 2 года назад

    amazing, thank you!!

  • @Light-wz6tq
    @Light-wz6tq 3 года назад +2

    1k likes, 0 dislikes, *visible great content*

  • @IIMyLittlePonyII
    @IIMyLittlePonyII 2 года назад

    I'm so glad I found your videos! Question though... I mainly deal with Mobile games. Is there a solution you'd recommend for Mobile? Would love to see a video on Mobile solutions for common problems like these

  • @mateuszpatua3016
    @mateuszpatua3016 3 года назад

    simply the best!

  • @GolfUser
    @GolfUser 3 года назад

    Great video! Thx! :)

  • @dabuilda
    @dabuilda 3 года назад +2

    Dude your great

  • @SuperEssenceOfficial
    @SuperEssenceOfficial 24 дня назад

    thank you king

  • @josepadillacampos4206
    @josepadillacampos4206 2 года назад

    Thanks for your video

  • @ikadar
    @ikadar 3 года назад +2

    Had to watch this in 0.25 speed just to be able to not miss something with how fast those video zooms and mouse movements were.

  • @swankzilla
    @swankzilla Год назад

    This is really useful for displaying basic strings but what about referencing variables in the tooltip? At the start of the video you hover over some objects what have more advanced tooltip information...

    • @GameDevGuide
      @GameDevGuide  Год назад +1

      These videos only serve as a base for people to build on! For your suggested use case, you can use string formatting on the tooltip and pass the info into the formatted string / tooltip from some other component when it's required.

  • @mnnm1989
    @mnnm1989 3 года назад +1

    5:53 was just wondering, why does your inspector show a textfield for the content? do you use some special inspector or is there a tag for it? thx

  • @kayrauckilinc
    @kayrauckilinc 3 года назад

    INFORMATIVE!

  • @rutchjohnson
    @rutchjohnson 3 года назад

    So Good!

  • @martynawasiluk1405
    @martynawasiluk1405 3 года назад +3

    How did you do the fade animation? I've been trying to get it to work with LeanTween, no success yet.

    • @GameDevGuide
      @GameDevGuide  3 года назад +7

      Put a canvas group on the component and use Leantween.alphaCanvas

    • @martynawasiluk1405
      @martynawasiluk1405 3 года назад +2

      @@GameDevGuide Thank you

    • @michele6064
      @michele6064 3 года назад

      @@martynawasiluk1405 can you help me please? what i have to do?