Search Unity

Better UI

Discussion in 'Assets and Asset Store' started by Hosnkobf, Jan 30, 2017.

  1. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    thanks for the information. I don't think that it has anything to do with the safe area. That would not affect the density of points within an inch. However, maybe the people at apple did some misscalculation because of the safe area... who knows :D

    Regarding the Transition for Color32: If I interpret it correctly you put the enum-value for it right after the ColorTint (inside TransitionMode). Since enum values are stored as ints internally this is a problem. because if you already had e.g. a SpriteSwap transition somewhere it would become the Color32 Tint (because it took over its place).
    So, to not run into an issue when there is an update for Better UI you should put it as the last element of the enum (after Material property). To be sure, assign it the value 7.

    I integrated it already. TransitionMode looks like this now:
    Code (CSharp):
    1.         public enum TransitionMode
    2.         {
    3.             None = 0,
    4.             ColorTint = 1,
    5.             SpriteSwap = 2,
    6.             Animation = 3,
    7.             ObjectActiveness = 4,
    8.             Alpha = 5,
    9.             MaterialProperty = 6,
    10.             Color32Tint = 7,
    11.         }
    12.  
     
  2. Rich0

    Rich0

    Joined:
    Aug 9, 2013
    Posts:
    50
    This is great - thanks for the fix!

    ----

    Regarding the other problem with iPhone X DPI - after way to much tracing code in Better UI, creating a manual DPI shifter - and still getting the same result up to a certain point... what is causing the problem is so simple it might make you laugh (or cry). At a certain point I noticed that DPI settings weren't having any effect... you can probably guess why...

    The clamping values for Max Size in the "InchesRuler" component are set to 4. Setting X,Y, and Z to 5 and it's works on the iPhone X. Reported DPI is correct. On the positive side, at least I understand the relationship with X&Y DPI modification value & the Optimised DPI setting. Everything makes sense - I watched all your videos, and I'm not sure if I saw a clear explanation of how exactly those values work. Anyhow, it's nicely done on your part in terms of code - very easy to understand.

    Having said that, Unity has had issues before with reporting incorrect DPI settings (on the iPhone 8 in particular, and from what I hear on Android devices as well) - so having the overriding feature is a nice thing to have. I don't think it's a waste of time.

    On the positive side, this exercise has taught me a lot about how better UI works.

    I'm very interested in testing the new Beta and providing feedback.
     
  3. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    thank you very much for all your feedback :)
    I also run into problems with the max value... maybe I should find a way to ignore it by default (or make it very big as a default).

    I am happy that you find my code easy to understand. I always try to make it self explanatory because I hate comments which says the same as the variable name. However, I guess a bit more comments here and there would not hurt (I am often a bit to lazy in terms of making comments).

    I also heard that some manufacturers put in no or wrong dpi values. So, I will integrate the override feature :)

    regarding the beta: I basically have to test a bit and update the documentation... because there are huge changes it will take a long time for the documentation... maybe I will provide the beta without updated documentation first... then you all do not have to wait so long ;)
     
  4. Rich0

    Rich0

    Joined:
    Aug 9, 2013
    Posts:
    50
    I've found what looks to be an issue, is it by design?

    Steps to reproduce:
    1) Create a canvas - set pixel scaling & DPI to 96
    2) Create a child of (1) - an empty game object with a rect width and height of 1080 x 1920.
    3) Create a child of (2) - an image (250 x 250), add Transform scaler and set DPI on X&Y.
    4) Run in editor. It works perfectly, scales to DPI as expected.
    5) Run on an iOS device (e.g. iPhone 7+ with 1080 x 1920 resolution) - scaling doesn't work as expected.

    You'll notice that on the iOS device the image is stretched to touch the left & right border - and doesn't look to be scaling with DPI. Strange, because it does scale properly in the editor.

    Any ideas on what might be causing this?

    The reason I'm asking is because I'm attempting to use the Procedural UI plug in (https://assetstore.unity.com/packages/tools/gui/procedural-ui-image-52200) and it exhibits exactly the same symptoms as the image above when a transform scaler is added to it.
     
    Last edited: Jul 30, 2018
  5. Rich0

    Rich0

    Joined:
    Aug 9, 2013
    Posts:
    50
    Hi,

    After too many hours of looking at this - I think there may be an issue with the math behind the DPI scaler. It's not noticeable when you're using small images (e.g. 55x55), however with larger images (e.g. 250x250) the problem becomes obvious - particularly when using a max value of 5 for scaling.

    I'd really appreciate if you could look into this & let me know your thoughts.

    -R
     
    Last edited: Jul 31, 2018
  6. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi @Rich0,
    can you give me a sample project (you can upload via wetransfer.com and send me the link per pm)?
    On which iOS devices did you test it?

    My guess is that it has something to do with retina displays. But I have to test (and would like to know if it only happens with retina displays).
     
  7. Rich0

    Rich0

    Joined:
    Aug 9, 2013
    Posts:
    50
    Done! Looking forward to what you think.

    Also, here's an attached image to show you what I'm seeing on my end.

    The iPhone images are generated from screen-shots from the code running on-device.

    https://web.tresorit.com/l#Iwj0LiQsDhs4D_vSqjl2mQ

    You don't notice this when the image is 55x55 - because whatever is causing this is only apparent when using numbers 3-4 times the magnitude. The max scaling factor also has a much more pronounced effect as the numbers get bigger.
     
  8. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    thanks for the info. Let's continue the conversation about this issue via private messages :)
     
  9. Rich0

    Rich0

    Joined:
    Aug 9, 2013
    Posts:
    50
    I thought I'd just post a follow up here (our long conversation went private) - as many people considering Better UI may read it (and I don't want to give the impression that the product doesn't work).

    The problem here was in my understanding work-flow when you're trying to achieve DPI parity across various mobile devices - it's not a product issue.
     
    Hosnkobf likes this.
  10. AlanMattano

    AlanMattano

    Joined:
    Aug 22, 2013
    Posts:
    1,501
    BUG REPORT
    This is a very annoying bug that I was able to isolate Please Try To Fix It.

    I include a "BugReport.unitypackage" file.
    1. Is a prefab that you can import into the project.
    2. Open the GameObject (GO) "UI Wind Tunnel Inputs <-- 1"
    3. and go down in the tree to: "Row (L)"
    4. Disable and re-enable "Row (L)" GO
    5. Now press save button to save the scene
    As you can understand, is not saving and the "*" is still there.
    You need to save 2 times.
    But in other cases when automatic saving is in action this enter in an infinite loop that can freeze my editor.
    Please Try To Fix It because is very annoying to do not know if there are changes in the scene or not
    Thx
     

    Attached Files:

  11. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi @AlanMattano

    thank you for your report. I will look into it soon and if I find an easy fix I will post it here.

    Edit:
    Hmm... your prefab seems to be broken... Which unity version did you use?
    BTW: I think it is actually saving but something in the ui invalidates its state immediately after saving. So, the scene thinks something has changed again...
    would be good to know, which component causes this. Could you isolate it?
     
    Last edited: Oct 17, 2018
  12. AlanMattano

    AlanMattano

    Joined:
    Aug 22, 2013
    Posts:
    1,501
    BetterUI is giving this exception. I'm using Windows 10 U2018.2.14f1

     
  13. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hmm, did you apply this?

     
  14. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Better UI is 50% off until 8th of December.
     
  15. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Better UI 2.0 Beta 1 is ready for you!

    If you want to check out the cool new features, read this thread and write me a PM :)

    My apologies that it took so long with Better UI 2.0. I was involved in a project which went completely different than I expected. Today I found some time to complete some last task to make a beta (unfortunately I couldn't do everything... the newest Text Mesh Pro version is not supported yet).
     
  16. Deleted User

    Deleted User

    Guest

    I am very interested in the layout features. Does this asset work with 2018.3?
     
  17. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hello @MooseMouse,
    The asset works with 2018.3. Only the Text Mesh Pro part is using styles for the inspector which doesn't exist in 2018.3 anymore. I am in the middle of rewriting the inspector for it right now (will be in the next beta).
    If you are interested in the Beta for version 2.0, please write me a PM.
     
  18. Timmy-Hsu

    Timmy-Hsu

    Joined:
    Aug 27, 2015
    Posts:
    51
    Hi,

    BeterUI Vesion:1.2
    Cound you make this assert support unity script runtime version .NET 4.X, please?
    I use Unity 2018.2.20f1 and then switch to .NET 4.X will get error log.
    Seems like this issue same AlanMattano report.

     
    Last edited: Feb 18, 2019
  19. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi @Timmy-Hsu,
    AlanMattano confirmed to me in a private message that this workaround worked for him.
    Does it solve the problem?

    (In Better UI 2.0 I have a different implementation which works better)
     
  20. Timmy-Hsu

    Timmy-Hsu

    Joined:
    Aug 27, 2015
    Posts:
    51
    Hi,

    Thank you for the codes.
    I looked and tried to modify.

    According to this manual.
    https://docs.unity3d.com/Manual/PlatformDependentCompilation.html
    I think this should be better?

    Code (CSharp):
    1. System.Collections.Generic.List<Assembly> assemblies;
    2. #if NET_4_6 || NET_STANDARD_2_0
    3.             assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => !a.IsDynamic && !a.Location.Contains("Plugins")).ToList();
    4. #else
    5.             assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => !a.Location.Contains("Plugins")).ToList();
    6. #endif
     
  21. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Maybe, but AFAIK it doesn't exist on older versions of Unity. So, for you it should be fine but it is not for everybody.
     
  22. Timmy-Hsu

    Timmy-Hsu

    Joined:
    Aug 27, 2015
    Posts:
    51
    Hi,
    Just the new project test result.
    I try edit the code on Unity 2018.2.20f1 (64-bit), It seems ok, no error message.
    I also try on Unity 5.4.0f3 (64-bit), It also seems ok, no error message.
     
    Hosnkobf likes this.
  23. edwaitingforyou

    edwaitingforyou

    Joined:
    Aug 9, 2016
    Posts:
    5
    Hi,
    Does anyone know after disable then enable a better ui text gameobject, the text content would sometimes become some unreadable code.
    upload_2019-3-20_14-56-9.png
    Just like this.

    I am using Unity 2017.2.

    Thanks a lot if anyone can give a reason.
     
  24. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi,
    I remember this problem from earlier Unity versions. Since Unity fixed it (not sure which version) I experienced this only a very few times and only when the editor was not in Play mode.
    Did this happen during play mode?

    I have a theory what happens: Better UI scales the font size and you are probably using a dynamic font. When the Text is enabled it asks for letters in a certain size. But if your Text is set to Best Fit or Stay In Bounds it will change the font size immediately to the new size and asks for letters in a different size. The dynamic font might be confused about this and messes up the font texture.

    I don't think I can fix this because the actual problem lies in Unity's Dynamic Font... However, if it doesn't happen during play, I would simply ignore it. As I said before, I never experienced it during play anymore for a long time.

    In any case I would recommend to replace your (Better) Text components with (Better) Text Mesh Pro UGUI components. Text Mesh Pro simply has a better rendering output and because it scales by edge detection through a depth-texture it will never have such a problem.
     
  25. Playbackstudio

    Playbackstudio

    Joined:
    Mar 30, 2014
    Posts:
    5
    Is it not possible to access transition state objects at runtime? Been scratching my head over your source code, wondering why it's all get-only...?
     
  26. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi @Playbackstudio,
    I checked my code. It seems like some parts in the Transition code cannot be set from outside (like Target), but most can be accessed.
    Transition states can be accessed, but not very comfortable:
    Code (CSharp):
    1. // at the top of the file place:
    2. using System.Linq;
    3.  
    4.  
    5. // somewhere in your code:
    6.  
    7. Transitions transitions = myBetterButton.BetterTransitions[0]; // change 0 to the index of the transition you want to access
    8. var colorTransitions = transitions.TransitionStates as ColorTransitions; // change ColorTransition to the transition type you use
    9. var states = colorTransitions.GetStates();
    10. var normalState = states.FirstOrDefault(s => s.Name == "Normal"); // change "Normal" to the state you want to access
    11.  
    12. if (normalState != null)
    13. {
    14.     normalState.StateObject = Color.red; // change Color.red to a value which makes sense for your case
    15. }
    16.  
    If you can explain me your usecase I could maybe integrate an easier way in the next version (which will be released very soon).
     
  27. Playbackstudio

    Playbackstudio

    Joined:
    Mar 30, 2014
    Posts:
    5
    Thanks for this example.
     
  28. Playbackstudio

    Playbackstudio

    Joined:
    Mar 30, 2014
    Posts:
    5
    ToggleGroup does not seem to work with BetterToggles. When assigned as the group on the BetterToggle itself, it does work to prevent more than one toggle being isOn true, however the toggle group itself shows a count of 0 toggles despite registering each BetterToggle, and the method 'SetAllTogglesOff' does nothing. I created a 'BetterToggleGroup' from the ToggleGroup source code using BetterToggle types and making the toggle list public, and this works fine. However, BetterToggle cannot accept this class as the toggle group property, and I would prefer not to hack too much on your asset to avoid breaking forward compatibility. So can you please look into this issue and either create your own ToggleGroup component or figure out what is breaking access to individual toggles via the group.

    Thanks!
     
  29. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi,

    Thanks for this report. I will investigate this the next few days.
    Actually, I do not see a reason why BetterToggles wouldn't work with normal toggle groups. They derive from Toggle, so everything which works with a Toggle should also work with a BetterToggle...

    Can you tell me which Unity Version you are using?
    Maybe it is not a bug of Better UI but a bug of Unity (see here). Can you ensure that the behavior works as desired with normal toggles?
     
  30. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    I am proud to announce that
    Better UI 2.0
    has just been published!

    It contains a lot of new features and improvements:
    • Responsive Design: Design your app for different screen sizes, types and / or orientations! Make sure your Resolution Monitor is set up correctly...
    • Better Layouts: All layout components have "better" versions now
    • Especially the "Better Content Size Fitter" has a lot of extra functionality.
    • Tools UI improvements
    • Color Overlay material for "Better (Raw) Image".
    • Better Documentation

    Important:
    To upgrade from version 1.x, please follow the documentation about how to upgrade.
    "Better TextMesh Pro" is not in the package anymore. If you need it, you can download it here.


    For a limited time we offer a special discount price for Better UI ($14.99).


    Hope you will enjoy the new features :)
     
    Last edited: Jun 5, 2019
  31. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    333
    Hey @Hosnkobf I just bought Better UI because of the ability to have multiple transitions on buttons but I'm finding it a little tricky.

    All that apart, it does look like a really useful asset - thank you!

    Here's what's tricky - I have a button with 2 images I want to color tint. When I press on the button runtime in Editor, I find the second, "Better Transition" image changes as expected on click, but it doesn't release again. I have to click off the button to get it to go back the brighter image.

    (Can send you a short vid if that helps - it's a lot easier if you see it - but would rather not post that on the public forum.)

    Any ideas?
     
  32. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hey @Colin_MacLeod
    The Better Transitions work pretty much like the normal Unity transitions. So, You have 4 states: Normal, Highlighted, Pressed and Disabled.

    I guess the problem is, that your tint remains the highlighted color. This is the default behavior of unity transitions: A button becomes highlighted when you hover over it or when it was the last selectable which was clicked.

    You have two options now: Either set the highlighted color to the same color as normal (this is fine for touch, but for mouse input you lose the hovering effect) or add a method to a custom script to clear the selection which you call on click of the button.
    Here is the code for such a method:
    Code (CSharp):
    1. public void ClearSelection()
    2. {
    3.     EventSystem.current.SetSelectedGameObject(null);
    4. }
    Thanks for pointing this out. I will check if I can add this feature by default to Better Buttons and other Better Selectables.
     
  33. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    333
    I'm not sure I'm totally with you - please see the screenshot below. The "Start Superset Button" image changes to the pressed color tint while you are clicking on it then reverts to normal when you release. The "Center Marker" image changes to the pressed color tint when you click, but stays "pressed color" when you release and only changes back to normal when you click off the button onto another control.

    upload_2019-6-28_15-0-35.png
     
  34. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    333
    PS - I had a regular Color Tint before. It behaves the same way. I changed to the Color 32 Tint to see if that would help
     
  35. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Seems like Unity introduced a "Selected Color" recently. Honestly I was not aware of that.
    It probably doesn't find the "Selected" State in the Better Transition, so, it remains at pressed...

    I have to investigate this myself. Hopefully I can provide a patch for you soon.
     
    Gekigengar likes this.
  36. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    333
    Ah, ok. Thank you!

    Just to be clear, in my case it's the pressed state I'm interested in :)
     
  37. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    I investigated the issue and found a solution... It will be integrated in the next version of Better UI but until then you can implement it yourself easily:
    Open the C#-script "Transitions" found at
    Assets/TheraBytes/BetterUI/Runtime/Scripts/BetterUiElements/Transitions
    .

    at the top of the class (line 15) you find the following declaration:
    public static readonly string[] SelectionStateNames = { "Normal", "Highlighted", "Pressed", "Disabled", };

    replace it with this:
    public static readonly string[] SelectionStateNames = { "Normal", "Highlighted", "Pressed", "Selected", "Disabled", };

    That is all you have to change in the code. Better UI does everything else "magically" for you :cool:

    However, your already existing Better Transitions will not have the new "Selected" state because they didn't save it in the first place. To fix it, you need to remove the Better Transitions (set the count to 0) and then add them again (increase the count) and assign everything again.
    Sorry for this workaround. I hope I will find a more comfortable solution for the release version.

    When you finished, also the better transitions should change to the "Selected" state after a click.
     
    Last edited: Jun 30, 2019
  38. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    333
    That's great - I'll check it out. Thank you, @Hosnkobf!
     
  39. Colin_MacLeod

    Colin_MacLeod

    Joined:
    Feb 11, 2014
    Posts:
    333
    I tried the fix just now and it worked perfectly - thank you very much indeed, @Hosnkobf :)
     
    Hosnkobf likes this.
  40. JasonT4

    JasonT4

    Joined:
    Nov 19, 2018
    Posts:
    16
    I have problems setting up Screen Configurations. I want to have different scaling for some of the objects, depending on device resolution, and maybe use the Game Object Activator. I've tried setting it up using the example from the documentation, but if I switch between devices, nothing changes. Can you tell me what I'm doing wrong?

    Screenshot 2019-07-13 at 09.52.12.png

    Screenshot 2019-07-13 at 09.42.15.png Screenshot 2019-07-13 at 09.45.54.png
     
  41. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Did you test on real devices?
    If you just set the resolution to the one of the respective device it will not work, because your game view window will probably not have the physical size of the device. Keep in mind that you are checking the size in inch (or cm) not the resolution.

    To test it anyways you can either resize your game view window or simulate a configuration by clicking on the name of the screen configuration in the Pick Resolution window or in the resolution monitor. A little star * indicates that a screen configuration is currently simulated. Simulating means that the game view doesn't need to fulfill all conditions as defined in the resolution monitor but the UI will change to the settings of that screen configuration anyways.

    EDIT: In your case you could also remove the "Portrait" configuration and use the default fallback for it, which will be easier to handle.

    EDIT #2:
    I just realized from the sreenshots that you attached the Better Locator to the main canvas. This will not work. Instead, you have to attach it to every element beneath the main canvas which should have different locations / sizes.
     
    Last edited: Jul 18, 2019
  42. JasonT4

    JasonT4

    Joined:
    Nov 19, 2018
    Posts:
    16
    Like I mentioned in the other thread, I would like to use different menus depending on whether device is a phone or a tablet. Something similar to this:

    Phone:
    985E847F-15D0-4E7C-BF7F-8C6859AAD2C9.png

    Tablet:
    57D42826-BF19-42BB-A40A-F3D03C0C4789.png



    I've removed Better Locator from the main canvas. I have an image that holds the buttons and attached a Game Object Activator to it.
    Screenshot 2019-07-20 at 08.45.47.png
    Screenshot 2019-07-20 at 08.44.17.png



    ResolutionMonitor is set up like this:
    Screenshot 2019-07-20 at 08.42.07.png

    I've tested the app on an iPhone 6 and on an iPad Air (real devices), and there is no difference.
     
  43. JasonT4

    JasonT4

    Joined:
    Nov 19, 2018
    Posts:
    16
    Also tried this:
    Screenshot 2019-07-20 at 12.24.19.png
    Screenshot 2019-07-20 at 12.40.34.png

    If I resize the game view window manually it works, but when running on a real device it doesn't.

    Phone:
    16FAE2E5-A212-48D6-B5A7-9F6C95F94E3B.png

    Tablet:
    8AAA26B3-2B6B-4C69-B647-C457170DF92A.png

    Game window:
    Screenshot 2019-07-20 at 12.49.07.png
     
  44. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi @calin5820,
    Sorry for the late reply. I am currently on vacation, so, I cannot test it out myself right now. From your pictures I couldn't see anything wrong (however, you do not need to specify "portrait small" settings if they are the same as the fallback).

    Next week I can take a look myself (but I cannot test it right now on ios devices).

    Can you tell me which iPad air you have?
     
  45. JasonT4

    JasonT4

    Joined:
    Nov 19, 2018
    Posts:
    16
    iPad Air 1, running on IOS 12.4
     
  46. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Hi @calin5820
    After investigating my code again I found out that I put some code inside an
    #if UNITY_EDITOR
    region shotly before releasing version 2.0. That is why it doesn't work on the real device anymore. My apologies for this.

    Until I release a new version with a fix you can fix it yourself by calling the following code at the beginning of your game (e.g. in the Awake() method of an MonoBehaviour which exists in the first scene):
    Code (CSharp):
    1. TheraBytes.BetterUi.ResolutionMonitor.CallResolutionChanged();
    Alternatively you can create an Ingame Resolution Monitor.

    Please let me know if this fixes your problem (or if something is unclear).
     
  47. JasonT4

    JasonT4

    Joined:
    Nov 19, 2018
    Posts:
    16
    It works. Thank you!
     
    Hosnkobf likes this.
  48. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Better UI 2.1 is almost ready for release. It is a matter of days until it will be available for you. Again with some very useful new features.

    This is your chance to get a license for the very low version 2.0 price. With the next version the price will be adjusted to meet the quality and quantity of features you get with the package.
     
    Grumpy-Dot likes this.
  49. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    1,096
    Better UI 2.1
    is released now!

    If you want to know about the new features, please check out this video:


    Here is the change log:

    • Features
      • Custom static methods can be defined to calculate size changes for UI element variables
      • Introduced "Anchor Override" to snap the anchors of an object to another object
      • Introduced "Location Animations" to easily animate UI elements
        • These Location Animations can be used in Better Transitions
      • Introduced "Override Screen Properties" to control sizing through sub-areas of the screen
      • Introduced "Interaction Area" which allows to define clickable zones without visual representation
      • Added "GhostExampleScene" to show the new components
    • Minor changes
      • not found screen configs are marked in the inspector
      • Improved Resolution Monitor Inspector
      • Added Upgrade button for transitions in Unity 2019+
      • Changed TextMesh Pro inspector to have less trouble with different versions of Unity and TextMesh Pro
    • Bug Fixes
      • Screen Configs where not evaluated on start of a build (responsive design didn't work without IngameResolutionMonitor)
      • Color Transitions had a color multiplier of 0 instead of 1 after upgrading from Better UI 1.x

    Thanks to @JuanJSAR for the valuable bug reports and ideas for improvement.
    Also thanks to all who posted problems and feedback in this thread.
     
    Last edited: Sep 5, 2019
  50. MaxGuernseyIII

    MaxGuernseyIII

    Joined:
    Aug 23, 2015
    Posts:
    315
    Better Locator: I cannot get "auto pull" or "auto push" to work the way I want them to work and I cannot turn them off.

    Here is the current behavior:
    1. Start with the fallback screen dimensions.
    2. Get a game object's rect transform the way I want it.
    3. Switch to another set of screen dimensions.
    4. Get the game object's rect transform the way I want it to look for that layout.
    5. Swich back the fallback transform.
    6. The fallback transform's values have been overwritten with the override transform.
    So I turn off auto pull. And get this behavior.
    1. Set everything up for one game object using manual pulls.
    2. Verify that the object I'm working on changes size and shape as expected when I change screen sizes.
    3. Start working with another game object.
    4. Notice that the first object is no longer working.
    5. Switch back to inspecting that object.
    6. Auto pull has been re-enabled.
    Is anyone else experiencing this?

    If nobody else is experiencing this, I wonder if it's because I'm working in the prefab editor and using nested prefabs?

    Thanks for any help.