Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Simon (Darkside) Jackson
@SimonDarksideJ

Update 2019.5 - 2.3 - Accelerated Deployment

Since the move to UPM, the team have been able to react quicker and push out fixes a lot easier, without affecting previous installation (whilst still adhering to Unity's backwards compatibility pattern). So it is with great news we announce this new release, faster that ever :D (and thanks to UPM, easier to upgrade than ever).
Be sure to also check out the "Examples" option in the Package Manager window to import the samples to your project.

Be sure to logon to the new Gitter Chat site for the UI Extensions project, if you have any questions, queries or suggestions

Much easier than posting a question / issue on YouTube, Twitter or Facebook :D

UIExtensions Gitter Channel

New / updated features

  • Add squircle primitive
  • Adding new magnetic scroll control
  • Added a static library to collate shaders on first use.
  • Finalized new InputManagerHelper, which translates input based on the operating input system, new or old Updated CardStack2D to have defined keyboard input or specific gamepad input over the older axisname for new input system.
  • Examples now included with UPM delivery and available as a button on the UPM package manager window
  • Updated DropDown and Autocomplete controls based on feedback in #204
  • Updated Accordion to support both Vertical as well as Horizontal layout
  • Updated ComboBox controls to improve better programmatic controls
  • Updates to the Infinite scroll to support content of various sizes
  • Updated UI Knob control - enabled dragging outside the target area, added example scene
  • Minor update to MagneticInfinite Scroll
  • Refactored and extended the ContentScrollSnap control
  • Added protection against errors and empty scrollrect content
  • Added new SetNewItems function to add children programmatically to the control and reset accordingly
  • Patch supplied by a contributor to improve the texture sheet use with the UIParticlesystem
  • Added "SetKnobValue" function which allows the setting of Value and loops
  • Added the programmatic capability to change the parent scroll rect on the ScrollConflictManager at runtime.

Examples / Examples / Examples

Examples now have their own package, this simplifies their use and deployment. Especially in 2019 with the UPM deployment.

  • New UI Knob examples
  • New Magnetic Scroll Example
  • Updated ComboBox examples for programmatic testing

Fixes

  • Fix to add a "RequireComponent" to Primitives as Unity 2020 does not add them by default
  • Remove old Examples submodule
  • Updated submodules to hide Examples folder Additionally, updated Package manifest to allow importing of examples direct from UPM package.
  • Fixed hard swipe to ensure it only ever moves one page, no matter how far you swipe.
  • Fixed a conflict when using the ScrollConflictManager in child content of a HSS or VSS
  • Fix for UI Particle system looping
  • Fixed public GoToScreen call to only raise events internally (not multiple)
  • Final roll-up and fix. Resolved race condition for associated pagination controls.
  • Fixed issue with page events not being raised when inertia was disabled (velocity was always zero)
  • When cloned, reorderable list was creating a second List Content component that was not initialized. Refactored to ensure only one list content was present and is initialized correctly
  • Reorderable list items marked as transferable, remain transferable after being dropped
  • Patch to resolve issues without the new Input System installed
  • Refined magnetic scroll and dependencies while documenting Updated example
  • Patch Tooltip
Big thanks to all of the community for their bug reports, new suggestions and requests. Dive in and see what's new (or fixed :D)
The biggest thing I'm happy about is the new Input System Support. Lost a fair few nights sleep working through that drama, but all good now :D
pdeclercq
@pdeclercq
Hey! I found out about this extension a few days ago and it's been game changing. My current game's gameplay is pretty much menus on top of menus and UI wasn't really on point and smooth so thanks a lot for the dedication. I just want to report a very small glitch with the HorizontalScrollSnap (probably with the Vertical one too) where if you ask dynamically to move to an index if you don't deactivate the velocity, it scrolls to the next one (only happened to me at very low velocity). Thanks again for your work !
Simon (Darkside) Jackson
@SimonDarksideJ
Thanks for the feedback @pdeclercq , Can you log an issue on the bitbucket with replication steps and of possible a demo scene showing the issue.
papitosan
@papitosan

Hello! It maybe very simple but I can’t get the centered/selected page number in the Horizontal Scroll Snap.

I searched on the web but still not able to get this variable.

Could you tell me step by step how to access this variable from a script?

Thank you very much for this great extension!

Simon (Darkside) Jackson
@SimonDarksideJ
Both the Horizontal and Vertical Scroll snaps have a "CurrentPage" variable, which indicates the currently "snapped" page.
I've noticed the documentation only reflected properties available in the inspector and have updated them to include this property. Sorry for the confusion
https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/wiki/Controls/HorizontalScrollSnap
papitosan
@papitosan
Hey thanks. "To get access to the Current or snapped page in code, use the CurrentPage property details above". So where do I reference this variable? I tried to write "public int CurrentPage" in HorizontalScrollSnap script but without success.
Simon (Darkside) Jackson
@SimonDarksideJ
Simply query the CurrentPage variable of the HorrizontalScrollSnap component, as follows:
    public HorizontalScrollSnap hss;

    // Start is called before the first frame update
    void Start()
    {
        hss = GetComponent<HorizontalScrollSnap>();
    }

    // Update is called once per frame
    void Update()
    {
        //Checking for the Currentpage
        var theSelectedPageIs = hss.CurrentPage; 
    }
As shown in the last line, I query the reference I have to the specific GameObject with the HorizontalScrollSnap component applied, and query the "CurrentPage"
pdeclercq
@pdeclercq

Thanks for the feedback @pdeclercq , Can you log an issue on the bitbucket with replication steps and of possible a demo scene showing the issue.

I'm not 100 % sure how to replicate it, i can't send a demo because as i said i found a solution (and didn't really think things through), but the main point is, if you move to a index using GoToScreen(index) while the scrolling is decelerating, it can go to the index + 1 or - 1 depending on the velocity (left to right / right to left)

I would love some help on the same scroller tho, im trying to delete or add children dynamically but i don't understand the RemoveChild() parameter "out". I'm using c++ in all my own script so the issue might be there but no real idea
pdeclercq
@pdeclercq
What I really want to do is to be able to hide a specific screen so the scroller ignores it
Simon (Darkside) Jackson
@SimonDarksideJ
I saw you logged an issue on Bitbucket for the same. As your requirements are slightly different here. Could I ask you to update that issue with the requirements for what you are trying to achieve and if possible, yes a sample scene to work with.
papitosan
@papitosan

Simply query the CurrentPage variable of the HorrizontalScrollSnap component, as follows:

    public HorizontalScrollSnap hss;

    // Start is called before the first frame update
    void Start()
    {
        hss = GetComponent<HorizontalScrollSnap>();
    }

    // Update is called once per frame
    void Update()
    {
        //Checking for the Currentpage
        var theSelectedPageIs = hss.CurrentPage; 
    }

oh I understand now, Thanks a lot. I was trying to reference the variable directly in HSS script.

Also I forgot to declare "namespace UnityEngine.UI.Extensions"
papitosan
@papitosan
Excuse me to bother you but I have one last question:
I want to have a menu where each page correspond to a level but at the beginning all level except level 1 would be locked so it would n't be possible to scroll to those page. then after completing level 1, level 2 become available and unlocked so you can now scroll to the page. How would you do that with HSS?
pdeclercq
@pdeclercq
@papitosan you can add a button on each screen and deactivate the interaction for the one locked or just add a new child if you don't want to show the level at all
papitosan
@papitosan
@pdeclercq Ok, got it!
for people who try to do it, it's not possible to make a child of a prefab. You have to put the plans on the scene as gameobject first and then call them by script as child.
JustWastingTime
@JustWastingTime
Hello. Is it possible to make the reorderable list grid scrollrect to scroll while clicking on the content? I disabled the IsDraggable to prevent the content from getting dragged instead. Or is there another UI Extension component that lets me make a grid with autolayouting?
Simon (Darkside) Jackson
@SimonDarksideJ
The Reorderable List, is only intended as a drag and drop interface and is designed that way @JustWastingTime , the component you're looking for is the "UIScrollToSelection" Component. The docs page was missed in the last big update, so I'll get it updated ASAP.
However, it is very easy to add, by simply adding the component to an existing ScrollRect
mahgo
@mahgo
I'm using UILineRendererList to render multiple lines, and am trying to style my lines with a sprite that I want to repeat/tile, but it is only stretching, even if I set Wrap Mode - Repeat on the sprite. What can I do to achieve this?
Artyom
@artyomabgaryan
@SimonDarksideJ is there way to use Scroll Snap & infinite scroll together ?
Simon (Darkside) Jackson
@SimonDarksideJ
You can use the HSS & VSS controls with the Infinite scroll control @artyomabgaryan . they have been updated to work together
Can't speak to the other "ScrollSnap" and ContentScrollSnap controls
Can you log an issue @mahgo with replication instructions and possibly a sample scene demonstrating the issue, the line renderer (especially the texture version) should work with wrap textures
jefftobler
@jefftobler
Hi All, we are finishing up a large adventure game and wanting to use UUE to insert images into a text block. Maybe a stupid question, but I'm trying to load the package in PackageManager and it is greyed out. I've tried 2019.5 and 2019.1. We are developing using 2019.3.13f1.
Simon (Darkside) Jackson
@SimonDarksideJ
Sorry for the delay in response due to the holidays :S
Can you detail the replication instructions @jefftobler , we test the deployment of the project quite vigorously using 2018, 2019 and when called, 2020
Curious about 2019.5 :D advanced copy? I've been testing specifically with:
  • 2018.4.30
  • 2019.1.14
  • 2019.4.16
  • 2020.1...
Jamjardavies
@Jamjardavies

Not sure if this is known, but I've just created an issue regarding the Content Scroll Snap Horizontal. I know I must be a pain finding issues with this one control :P

https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/issues/362/bug-single-child-in

Simon (Darkside) Jackson
@SimonDarksideJ
Spotted the report @Jamjardavies and thanks for logging it. I Will get it looked at asap
2 replies
frozonnorth
@frozonnorth
Hi, just tried out The Reorderable List. Just to suggest to have position of the dragged elements based of the initial click position in OnBeginDrag() by including an offset.
image.png
image.png
Simon (Darkside) Jackson
@SimonDarksideJ
Great suggestion @frozonnorth , could you log that as an issue of type "proposal" to the Bitbucket repo so it can be picked up in the new year.

A very Merry Christmas and a happy new 2021 to all users of the Unity UI Extensions project. We're truly honored you chose to include us in your project and just as happy it helps you be successful faster and quicker!

If there is something else you need in the UI world, let us know on the BitBucket site and we'd be happy to help.

CortiWins
@CortiWins
Hello folks! I will only ask one question this year, i promise ;-) Does this project have scripts that help with using a gamepad/keyboard via event system in menus? I'm doing okay with scrolling panels now, but getting it to work with the EventSystem seems more complicated.
Simon (Darkside) Jackson
@SimonDarksideJ
Check out the menu sample which is an effective menu system using the event system. How that helps @CortiWins
And don't be a stranger, feel free to chat here @CortiWins
CortiWins
@CortiWins
Happy new year everyone.
I got a strange effect with "UIScrollToSelection" where works on a few Buttons, but theres one Button where the whole scroll panel tries to scroll into negative Y and it flickers around because of that, and i'd love to know what i did wrong because that button has the same configuration as the others.
CortiWins
@CortiWins
Okay. It's not a certain button, but rather the buttons distance from the top border of the content panel + the buttons height. It seems to try to scroll 1/2 of the button height. Now lets see why it does that. Pivots don't seem to be an influence.
CortiWins
@CortiWins

Scenario:

  • Button is set to the top-left (0, 0) of the content panel.
  • The content panel is scrolled to the top border, with a Y-offset of 0.
  • On selecting the button, UpdateVerticalScrollPosition is called
  • selectionPosition is calculated as 0, which looks fine, its at the top.

Then GetScrollOffset is called with the following values

UIScrollToSelection.GetScrollOffset(position = 0, listAnchorPosition = 0, targetLength = 100, maskLength= 708)
And returns the value = 808

Which leads to a change in the verticalNormalizedPosition from 1.0
Before: TargetScrollRect.verticalNormalizedPosition 1.00
After: TargetScrollRect.verticalNormalizedPosition 1.06...

Which in ScrollRect.MovementType == Elastic leads to the flickering movement.

CortiWins
@CortiWins

So in GetScrollOffset() for a position that requires 0 scrolling ( as i see it, correct me if i'm wrong ),
this leads to scrolling of 1 heigth of the control, if there's less than 0.5 height of the control distance the the top border.

if (position < listAnchorPosition + (targetLength / 2))
{
// 808 = ( 708 ) - ( -100)
return (listAnchorPosition + maskLength) - (position - targetLength);
}

CortiWins
@CortiWins
And now i found out that it's a known issue and that there is a replacement that seems to work better in the pull requests. Oh well.
Simon (Darkside) Jackson
@SimonDarksideJ
It's a known issue atm due to some changes in unity somewhere. A simple fix is to change the type of scrollrect to clamped (not elastic or unrestricted) which will stop the jitter
The cause is because when the control reaches the end of the list of children it no longer "stops" which causes the control to constantly try to compensate, which causes the jitter. Still looking in to it, details are logged on bitbucket