UE4 UMG ListView explained to my future self who has already forgotten...

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ย. 2024
  • I've used the ListView Widget before, so I thought I remembered how to use it. Lol. Here's the reminder to my future self so that I don't waste another couple of hours in forum posts and google-holes.
    This example was created with UE 4.25 but should apply to 4.23 and later (this was when Epic changed the UserObjectListEntry interface).
    #ue4 #umg #listview #gamedev #unrealengine #tutorial
  • เกม

ความคิดเห็น • 69

  • @peterbikki8963
    @peterbikki8963 4 ปีที่แล้ว +56

    if only Epic's official documentation would be this useful. Thanks!

  • @mjrmls
    @mjrmls 3 ปีที่แล้ว +39

    I'm shocked by how convoluted this process is. Insane.

    • @MrZzm88
      @MrZzm88 8 หลายเดือนก่อน

      really crazy, i just need a simple list😅

  • @kilrothy
    @kilrothy 3 ปีที่แล้ว +8

    Please make more reminders for future you. I hear memory gets increasingly weaker with age.

  • @ThePCxbox
    @ThePCxbox 2 ปีที่แล้ว +8

    You know, for a pretty useful widget that I constantly use, I keep having to come back to this video to remember the bizarre setup. Thank you for this

  • @choco5947
    @choco5947 8 หลายเดือนก่อน +2

    epic games is clearly overcomplicating widgets

  • @SaberVS7
    @SaberVS7 4 ปีที่แล้ว +21

    Thank you, **THANK YOU**, I wasted so many hours trying to wrap my head around why my ListView-based Inventory wasn't updating properly. I was thinking I had to create Widgets and then Add them to the List - Not that I'd feed the Data to the List and it would make the Widget for me. I was on the verge of madness and about to decide to just learn Slate instead so I wouldn't have to deal with Blueprint abstractions for my UI, but you've singlehandedly saved me from needing to do so.
    Have a Subscribe from me, even if you aren't making any tutorial videos.
    Now that said, if I ever have to touch Blueprint again in my life it'll be too soon.

    • @Beh3D
      @Beh3D 2 ปีที่แล้ว

      FWIW, I actually got mine to work using the method you described by creating a widget and then adding it to the list, after having set that same widget as the base for the list

  • @BubuRuzu
    @BubuRuzu 7 หลายเดือนก่อน +1

    Would've been nice if you actually gave an example for what list view is actually intended. Which is long lists of thousands, populated through a for loop.

  • @DCVolo
    @DCVolo 3 ปีที่แล้ว +4

    The way they build this is so unintuitive.
    You can actually have and store the references of those EntryWidgets but cannot access their variable and so modify the objects. I've no idea if it's made on purpose but it does feel like it's been abandonned half way through.
    So the way i bypass this :
    Inside the Widget that contain the Listview, i use the ConstructObjectFromClass and using the EntryClass i've made. But the one change that i've made it that inside the EntryWidget i've added an Object Variable that contain every information i need to set the EntryWidget, then same as you i use the EventOnListItemObjectSet promote the output variable to a local variable, cast this to the EntryWidgetClass i've made and then use the Object variable that store all the information FROM that cast.
    So inside my Widget that contain the ListView, the construct node (after a refresh) has an input pin and that's how i transfer data through references.
    This allow me to dynamicly create new entries and make so that each of my items could be specific to an individual actor, like this : th-cam.com/video/xl6_nJy5gw0/w-d-xo.html

  • @pietpanzerpanzer5335
    @pietpanzerpanzer5335 2 ปีที่แล้ว +1

    How do i make t possible that i can scroll in the fucking list? i cant get it to work

  • @johngreen9768
    @johngreen9768 3 ปีที่แล้ว +3

    I think the construction of struct is not essential and quite confusing. we can directly construct subclass of uobject and make the datas as its members.

  • @FlyPimpDude
    @FlyPimpDude ปีที่แล้ว +1

    5:45 ItemData is not showing in the Bind dropdown for me. I'm using UE5.1 if that changes anything (depreciation?)

    • @FlyPimpDude
      @FlyPimpDude ปีที่แล้ว +2

      Ok I figured it. Not shown in the video but need to set the data variable in UData Object to Instance editable and expose on spawn

  • @gulagwarlord
    @gulagwarlord 3 ปีที่แล้ว +7

    Holy crap, this is the most convoluted process... I really hope they make something more intuitive for this. Geez.

    • @tPlayerioT
      @tPlayerioT 2 หลายเดือนก่อน

      they never did. crazy

  • @Aymekiss
    @Aymekiss 4 ปีที่แล้ว +3

    what's a fun and realistic title, +1 and thanks ;)

  • @Playeroth
    @Playeroth 2 หลายเดือนก่อน

    if scroll does not appear make sure in your main widget where the list view is in, that the list view has "fill" instead of auto + the list view has anchor of full size.

  • @cellobass6195
    @cellobass6195 ปีที่แล้ว +1

    This is like the 6th Listview I implement in my project, and every time I find myself returning to this... That's how unintuitive it is. Thank you for this video.

  • @hun-alexander
    @hun-alexander 4 ปีที่แล้ว +2

    lemon!!

  • @jasongutierrez9882
    @jasongutierrez9882 4 หลายเดือนก่อน

    Pretty much stopped watching at the 'This isn't the right way to do it, but I'm going to do it nonetheless'

  • @yousefbadr3430
    @yousefbadr3430 ปีที่แล้ว

    Thanks a lot for your help. unreal made it too complicated for such a simple addition or update.

  • @Hato1992
    @Hato1992 3 ปีที่แล้ว +1

    Comment for my future self who has already forgotten.
    It's my 2nd time here, and not last I'm sure!

  • @youssh4975
    @youssh4975 2 ปีที่แล้ว +1

    Ducking laughable that this is the process of creating a damn list.

  • @mattmurphy7030
    @mattmurphy7030 ปีที่แล้ว

    I'm back for the second time in a month because who can remember all this??

  • @bartekqrtd
    @bartekqrtd ปีที่แล้ว

    Men why they couldnt allow us to make multiple lists within 1 wb.

  • @robpenfold9500
    @robpenfold9500 หลายเดือนก่อน

    This is ridiculously complicated.

  • @LiftPizzas
    @LiftPizzas 4 ปีที่แล้ว +4

    I don't get why they did it this way, it's so convoluted. I think I might rather create my own setup from scratch, at least then I'd understand how it works and be able to use it.

  • @Equ1no0x
    @Equ1no0x 2 ปีที่แล้ว +1

    Thanks for the great tutorial! I only wished you had also shown how to remove the items you set up, as that is the only thing I'm currently missing.

  • @pablomonfortgames6723
    @pablomonfortgames6723 3 ปีที่แล้ว +1

    all this for use just show up a list stuff? this sounds scary, im in pain already :V

  • @christopherparello5217
    @christopherparello5217 3 ปีที่แล้ว +1

    How would you go about removing an item of the object structure instead of modifying it?

  • @AstroVerse0101
    @AstroVerse0101 3 ปีที่แล้ว +1

    helou :D

  • @3zzzTyle
    @3zzzTyle 3 ปีที่แล้ว +1

    Holy fuck this process is atrocious.

  • @保存室にけ
    @保存室にけ 2 ปีที่แล้ว

    レモーンの所で思わ拍手をしてしまったよ(笑)
    日本語でこれをView系を説明してくれるものがなかったのでとても分かりやすくありがたいです。

  • @johnfredcee
    @johnfredcee 4 ปีที่แล้ว +1

    Thanks for taking the time to explain this.

  • @KAT_Editor
    @KAT_Editor 7 หลายเดือนก่อน

    So, what about 4.22?

  • @Gmee_
    @Gmee_ ปีที่แล้ว

    I love you, thanks

  • @tehf00n
    @tehf00n 2 ปีที่แล้ว +2

    When you said its a bad habit to get player index 0 that was incorrect. If you are using that node you actually only ever really want to get player index 0 unless you are using Split Screen. In multiplayer you would use GetController and cast it to a player controller which would get the Server Player Controller ID.

  • @norabseven
    @norabseven 2 ปีที่แล้ว

    I'm trying to add a button to the ListViewItem that calls a dispatcher that the owning UtilityWidget can react to. But I can't seem to figure out how to bind or get reference to the ListViewItem's Widget that's created in the list view when adding an item to do this.
    Any Suggestions?

  • @curtisnewton895
    @curtisnewton895 2 ปีที่แล้ว

    gee why did they make it so complicated....I understand list view have to use interfaces, but what a mess of a tutorial
    especially at the end

  • @rodrigueroland
    @rodrigueroland 3 ปีที่แล้ว +1

    Thanks a lot!

  • @TheWolverine1984
    @TheWolverine1984 3 ปีที่แล้ว

    What if the incoming list item is a struct and not an object (When implementing the interface function.)

  • @clee7408
    @clee7408 2 ปีที่แล้ว

    Annnnnd now _this_ just became _my_ "remind myself how to do it" resource, thanks!!!

  • @gamenool
    @gamenool 2 ปีที่แล้ว

    Your are the best maaan!! Thanks, you helped me so much!!!1

  • @adrianamatic3368
    @adrianamatic3368 ปีที่แล้ว

    Thank you so much for this video! I was searching for ages on how to get this implemented!

  • @MrHwizard
    @MrHwizard 2 ปีที่แล้ว

    Very informative!! Thanks. Hope Epic make tutorials like that!

  • @jeffyoung4122
    @jeffyoung4122 3 ปีที่แล้ว

    I am running into an issue when my widget is a textbox and I need to update its content, how does it communicate back to the object that stores the data variable?

  • @mrmensje1
    @mrmensje1 2 ปีที่แล้ว

    Really awesome explanation, thank you so much for sharing!

  • @ilyaachmetov2264
    @ilyaachmetov2264 2 ปีที่แล้ว

    Good stuff, Thank you very much for making this!

  • @ДимаСеменов-ъ2ы
    @ДимаСеменов-ъ2ы 2 ปีที่แล้ว

    thank you very much. its very useful video💗

  • @franklzt8487
    @franklzt8487 3 ปีที่แล้ว

    The key point is the both binding and use class for data reference.

  • @adamkrawczyk9261
    @adamkrawczyk9261 3 ปีที่แล้ว

    This shit actually helped me so much. Thank you so much

  • @vincenzoarnone7406
    @vincenzoarnone7406 2 ปีที่แล้ว

    Thank you fellow developer!

  • @PaulGeraskin
    @PaulGeraskin ปีที่แล้ว

    God bless this tutorial!

  • @jasic1970
    @jasic1970 3 ปีที่แล้ว +1

    I'm hones. I think you did not really get the point of it. Or maybe its just me. But you keep on creating Objects with data, while thats not really the point. The thing is, take data from Objects You Have. If you would have like an Inventory. Then you would have a huge array with Objects. These are already created and you just plug the array into an for loop which then adds the Items. You make your tutorial way more crazy then it needs to be. But still wp and you have at least the best Tutorial on this i've seen. But i think with you creating this many objects and structs you could mislead others.

  • @dorondavid4698
    @dorondavid4698 2 ปีที่แล้ว +1

    For everyone saying this is convoluted...I agree 100%.
    But remember the C++ behind it makes perfect sense.

  • @Tydrol
    @Tydrol 4 ปีที่แล้ว

    Thank you! It helps a lot for me!

  • @EveryGoodWorkInc
    @EveryGoodWorkInc 3 ปีที่แล้ว +2

    One of the better and well done tutorials I've had the pleasure of going through. This was really helpful! Well done!

  • @dreamingacacia
    @dreamingacacia 2 ปีที่แล้ว

    much appreciated.

  • @TheArduino92
    @TheArduino92 2 ปีที่แล้ว

    Thank you man!

  • @hoxyoh2584
    @hoxyoh2584 3 ปีที่แล้ว

    He is a real Teacher

  • @tannyuld5150
    @tannyuld5150 4 ปีที่แล้ว

    09:25
    --

  • @legacyscroll1208
    @legacyscroll1208 2 ปีที่แล้ว

    I think your lemon worked the first go, you were just out of screen space, maybe?

    • @tPlayerioT
      @tPlayerioT 2 หลายเดือนก่อน

      he used set members and not add, which he was setting a null reference

  • @hardwire666too
    @hardwire666too 3 ปีที่แล้ว +2

    Just a heads up for anyone who comes across this like I did. The video is Obsolete, Sdata is no longer there and can't find any documentation on it so figure out how to adapt.

    • @WillMakesGames
      @WillMakesGames 2 ปีที่แล้ว +7

      I think he created SData

    • @brennonwilliams9181
      @brennonwilliams9181 2 ปีที่แล้ว +4

      SData is a structure created at the very start of the video

    • @tPlayerioT
      @tPlayerioT 2 หลายเดือนก่อน

      lmao