Search Unity

  1. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Let us know a bit about your interests, and if you'd like to become more directly involved. Take our survey!
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  5. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Text Mesh Pro Outside of Canvas

Discussion in 'Unity UI & TextMesh Pro' started by Quingu, Apr 21, 2017.

  1. Quingu

    Quingu

    Joined:
    Jan 30, 2013
    Posts:
    617
    I'm considering rewriting my UI backend to avoid using Unity UI at all. This is because its performance is not satisfying. Can Text Mesh Pro input field be used outside of a Canvas? I need this since I want to have custom UI in world space. Will TMP objects batch fast outside of Unity UI context?
     
  2. methos5k

    methos5k

    Joined:
    Aug 3, 2015
    Posts:
    8,715
    I'm pretty sure that I read a post where someone else was asking this, and the author responded that he might look into it if there's a demand, and when he has time.
    No idea about your second question, aside from having read the author say he always strives for equal or better performance (in general) to comparable Unity tools (be it UI or TextMesh).
     
  3. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    1,734
    The normal TextMeshPro component uses the Mesh Renderer and as such will benefit from dynamic batching. For object in world space, using this component is much more efficient than using a bunch of Canvas in World Space

    My suggestion is to just grab the product and play around with it. Take a look at the example scene "Benchmark Floating Text".

    The TMP Input Field does not work outside of the Canvas although when I have time, I can certainly look into that as almost none of the functionality is related to canvas stuff.
     
  4. konstantin_lozev

    konstantin_lozev

    Joined:
    May 8, 2015
    Posts:
    19
    Hi, sorry to hijack this post, but I am having a similar issue.
    I am building a 3d Minesweeper game and for bigger levels I have many nodes, even more linerenderers and when you open the nodes each has to show the number of adjacent mines. I managed to get GPU instancing to work with my basic unlit shader and I saw (expectedly) tremendous gains in batching. The linerenderers batch well enough in dynamic batching too.
    However, I get severe framerate dip and spike in the number of batches (from 8 to 611 in the attached screenshot) when the text element on each node gets shown.
    Here is a screenshot with the text elements visible: https://imgur.com/j2Lakvi
    And a screenshot with the text element disabled: https://imgur.com/4Rtd9U7
    I understood that the standard text fields in Unity in my case cannot get batched since they are each on a separate canvas.
    Does Text Mesh Pro support world-space text that can be dynamically changed in runtime and batched?
    Thanks in advance.
     
  5. Stephan_B

    Stephan_B

    Unity Technologies

    Joined:
    Feb 26, 2017
    Posts:
    1,734
    Yes. Take a look at example "Benchmark (Floating Text) included with TextMesh Pro and located in the "TMP Examples and Extras".
     
  6. konstantin_lozev

    konstantin_lozev

    Joined:
    May 8, 2015
    Posts:
    19
    Thanks :) Will have a look at the example. I am new to Text Mesh Pro and all the options are a bit overwhelming, so thanks for the pointer :)