adrenak / ugx Goto Github PK
View Code? Open in Web Editor NEWUGX: UGUI Extended is a high-level library over Unity's inbuilt uGUI.
License: MIT License
UGX: UGUI Extended is a high-level library over Unity's inbuilt uGUI.
License: MIT License
Maintenance of references of windows is too clumsy. Most Window classes are used in a single instance anyway, effectively leading to singletons.
This practice isn't necessarily bad at application level UI and UGX should allow the developer to access LibraryPage
or something like that globally using a singleton reference or some ID.
Popups should have an AwaitResponse method and not call open and close window themselves.
This may mean that it will not derive from the Window class. Explore a popup base.
Keep it like TransitionForward and TransitionForwardAsync
Just create a MonoBehaviour with methods to change fullscreen and orientation. It method can be called from the window events after that.
Like how Dropdown in UnityEngine.UI uses the first child as the template. Everything doesn't need to be a prefab.
Should be able to interpolate between transition points using code. Eg. even though opacity transitioner has a default transition animation based on duration, tween etc, the programmer should be able to have manual control.
Just like whether windows should auto pop on back button press, add a checkbox for full screen or not.
A common usecase is something like "Never ask again" while responding to ask popups. Have an inbuild implementation for this.
Add support for popups that are shown and hidden completely by code. For example an "Opening... please wait" popup
Popups are often invoked multiple at once. Handle them in the right order
A component that can be attached to a GO and it initializes UGX.
The View should be able to update according to the ViewData values in the editor also for showing relevant starting values in the scene view.
It's neither clear how it should be used, nor that helpful. If it's to replace UnityEvent or delegate or event Action, it should be more useful.
Doesn't make much sense calling it FormView.
Also, if the name is FormView, it'll be convention to name the models XFormViewModel, which is too long a suffix.
When used in a real application, the cache doesn't seem to preserve the sprites in the right order. Too many refreshes happening.
A lot of results on Google return a base64 string instead of the jpg or png url.
Provide a way to have things like "hold for X seconds" or swipe right/left/up/down to trigger something. Also provide the normalised value throughout.
When the picture is being loaded, we might want to show a spinner etc.
After introducing UniTask, thread safety has to be ensured using UniTask.SwitchToMainThread on the app code. Solve this in UGX itself.
Navigators should have an ID that can be configured in their inspector.
By making it readonly in the editor, it cannot be edited by hand. Also, it cannot be used to autopopulate things on start. Add an "UpdateList" method and inspector button to reflect changes.
Let the framework initialize everything on its own using a method called by the application.
Instead of adding a reference of Navigator objects, let windows specify an ID under which they are to be navigated and all else is handled internally. Different IDs should be able to lead to different flows.
Makes more sense.
A lot of downloads are starting at the same time and the images are being decoded into Sprites/Texture2D. Causing jitters.
Create a base class for transitioners.
Not used anymore. Has little use.
onClose on every entry should get called in Awake.
Provide a way to reset/clear the view data.
Just like autoBack in Window.cs, allow to set screen orientation in Window
Make an EdgePositionTweener. Should should continue to use the entry and exit edge types. But instead of storing Vector2 screen positions for in and out positions, it should store a float that indicates the distance from the edge.
Window is the container that represents whether something is open or closed. It makes sense for it to be the class that is aware of visibility, instead of the View, which is only for presenting
ViewModel has historically been used to refer to objects that directly translate to the UI. Consider the term state that would also infer that data that does not show up on the UI can also be stored there.
ListView is widely accepted. Adopt that convention.
Should be renamed to ViewUpdater and offer these:
A ViewList equivalent should be available for just C# code, currently it takes an inheritence of ViewList so that it can be placed on the scene. That could instead be a level higher than an underlying code based approached.
Set as in and Move Out in Position Transitioner add extra complexity in exchange for little benefit. Try to get rid of them.
Also, 'In' position is a transition base concept, not specific to Position Transition. Opacity Transition would also use the same 'in' position.
ViewListBehaviour is initializing on Start. Watch out for more.
You might want to test a view with 4 different states. Right now the view only has an editable state in the inspector that you change run the game.
It'll be a good feature to drop and drop the state from the Assets window and the view just uses that. Allowing to create ScriptableObjects of ViewState or reading from a json file could be some ideas.
Add a method that closes all windows in the entire Navigator history.
master
branch failed. π¨I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. Iβm sure you can resolve this πͺ.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master
branch. You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here is some links that can help you:
If those donβt help, or if this issue is reporting something you think isnβt right, you can always ask the humans behind semantic-release.
An npm token must be created and set in the NPM_TOKEN
environment variable on your CI environment.
Please make sure to create an npm token and to set it in the NPM_TOKEN
environment variable on your CI environment. The token must allow to publish to the registry https://registry.npmjs.org
.
Good luck with your project β¨
Your semantic-release bot π¦π
master
branch failed. π¨I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. Iβm sure you can resolve this πͺ.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master
branch. You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here is some links that can help you:
If those donβt help, or if this issue is reporting something you think isnβt right, you can always ask the humans behind semantic-release.
package.json
file.A package.json file at the root of your project is required to release on npm.
Please follow the npm guideline to create a valid package.json
file.
Good luck with your project β¨
Your semantic-release bot π¦π
Handling single property changes should be easier than listening to an event. Provide a method to override and define.
A lot of class have UI classes that are for a special screen. These might as well be singletons.
Sometimes different UI panels are required for portrait and landscape. Have inbuilt support for this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.