Giter Club home page Giter Club logo

Comments (5)

nick-l-o3de avatar nick-l-o3de commented on May 23, 2024 1

I'm still nailing this down a bit, but I have made some progress here.

There seems to be a few things at play

  1. Some components call refresh_full_newcontent needlessly (instead of refresh_full). Newcontent is supposed to be used to scroll to the bottom of the entire thing, for when a new component is created
  2. There is no mechanism to actually remember and restore the scroll when not scrolling to new content.
  3. There is no way for a component to indicate that only itself needs a full refresh, not every other component on the entire entity.

I've fixed 1 and 2 and will have a PR up soon but 3 will be a problem.

from o3de.

nick-l-o3de avatar nick-l-o3de commented on May 23, 2024 1

note that I can repro some of this, but I can't repro the case where changing a script canvas var causes the shuffle, even on a huge entity with all sorts of stuff on it. Other things do it, things that invoke the full refresh - for example, changing material properties or LOD properties on a mesh causes the full refresh, becuase it wants to rebuild the properties grid as they may change if this happens. However, again, if we could solve (3) above it could be a lot faster.

from o3de.

GaianHelmers avatar GaianHelmers commented on May 23, 2024

A thought on why it's not full-refeshing from script graph variable changes is:

  1. Maybe there's something going on when you have unused public variables with the used public variables present on a script graph component.

  2. Maybe after you've done iterations on a script graph, where it's shuffling used variable references to unused, and hiding public variables made private, etc. is causing it to have lingering data that drives it to have to full load?

This is purely based on intuition though. I do know that the inspector struggles when it comes to re-referencing variable changes from graph edits. Keeping data from the old variable to the new variable and causing type errors and issues processing the variables until editor reload.

from o3de.

nick-l-o3de avatar nick-l-o3de commented on May 23, 2024

Well I put a breakpoint in full refresh and the only place it full refreshes is when the script is recompiled which requires editing the actual .scriptcanvas file and changing it. I can't get the tree to effect a full refresh no matter what I seem to do from the variable editor in the inspector view. However, there are plenty of OTHER components that changing any value cause it to ask for a full refresh (mesh component, material component, stuff with LODs, adding a new value...) ---- its quite possible that one of them responds to a change notify by requesting a full refresh or something weird...

I think, to start this off, I'll add a new API to ask for a component-entity update only (like, make it so you CAN, as a compnent say, "I need to refresh MY entire tree" instead of "I need to refresh THE entire tree including all other components" and use it on the common ones I spot that definitely don't need to mess with the other properties of other components.

I'll also fix the scroll issue by making it at least scroll to where it was after full rebuild.

from o3de.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.