The Elements Of Graphic Design Space Unity Page Architecture And Type Pdf

0 views
Skip to first unread message

Hasan Fogg

unread,
Aug 3, 2024, 11:25:11 AM8/3/24
to biotetomsprod

"This very popular design book has been wholly revised and expanded to feature a new dimension of inspiring and counterintuitive ideas to thinking about graphic design relationships. The Elements of Graphic Design, Second Edition is now in full color in a larger, 8 x 10-inch trim size, and contains 40 percent more content and over 750 images to enhance and better clarify the concepts in this thought-provoking resource. The second edition also includes a new section on Web design; new discussions of modularity, framing, motion and time, rules of randomness, and numerous quotes supported by images and biographies. This pioneering work provides designers, art directors, and students--regardless of experience--with a unique approach to successful design. Veteran designer and educator Alex. W. White has assembled a wealth of information and examples in his exploration of what makes visual design stunning and easy to read. Readers will discover White's four elements of graphic design, including how to: define and reveal dominant images, words, and concepts; use scale, color, and position to guide the viewer through levels of importance; employ white space as a significant component of design and not merely as background; and use display and text type for maximum comprehension and value to the reader. Offering a new way to think about and use the four design elements, this book is certain to inspire better design"--

Design - whether graphic, industrial, interior, or architecture - is the process of taking unrelated parts and putting them together into an organized unit. Each discipline works with solids and voids, and each must respond to three questions: What are the elements I have to work with? Where do these elements go? What structure is necessary so they go together?

The main strength of this book is the way the information is broken down. There are only so many ways that you can introduce and explain the principles and elements of design (balance, hierarchy, space, color, etc.), but this book does it in a way that I had not seen before. Rather than listing one at a time and discussing each, there are four sections: Space, Unity, Page Architecture and Type. The traditional principles and elements are then discussed in the context of these umbrella topics. I like this approach because it puts the different elements of design into a larger context that is easier for the student to understand. There is more connection between the different elements, and it is clear to see that the foundational principles and elements of design are not used in a vacuum, but interact with each other. This fact is one of the hardest things to help my students realize in introductory classes. For example, just because you are focusing on the use of scale in a project, does not mean that you can ignore balance or contrast. It is made clear that everything works together.

The Elements of Graphic design is a great resource with strong content that approaches a common problem from a unique direction and puts the principles and elements of design into a context that allows students to see how they work together. It is a shame that the design of the book makes the content harder to access than it should be.

However, Unity UI system was always fine for these use cases, doing a simple HUD was a trivial task and required no overhaul for the system, the problems start to arise when a real use case for a UI intensive app is rapidly scaling.

The app was getting really sluggish for an app with only menus and buttons and lists, compared to writing some UI mobile apps using native languages or even frameworks like flutter or react, it was extremely painful.

I mean this can simply kill our entire architecture, we should have some gigantic script as MonoBehaviour and then pass everything to the children though custom code, and then pass the data in a none typed object

I can go on and on about this but this is just few mind blowing decisions I have seen while trying to explore the new system, and if I wanted to compile a list of what I think should be burned to the ground, this post would have been much longer

The same can be said to Hannibal_Leo, although I like your approach better, but the last time I constructed UI with code by referencing some elements and then construct the visual tree by code is when I was learning java swing in college!

That being said, I guess my rant is mainly because we are getting something new, a component that is in development in 2022, and we are still using a very old way to handle stuff, I just wanted to know if this is going to be the case even in the future or this is something temporary and more tools are coming.

Compare this to any UI framework, they can brag about how easy you can make a page with like 5 lines of code, auto mapping, compiled code combination between the view and the code classes, auto binding between properties and their fields.

The way I handle this kind of situation is to stash a context object in the root element in my visual tree. That context object is a game object and can hold references to other game object and scriptable objects. Any visual element in the tree can reach up to the root to get at that data. In my game I hold a scriptable object which vends sprites, my string look up database (so my UI can be translated) and a bunch of more game-specific data.

So yeah, if you are interested I can tell you more on discord. Other than that, I agree with many of your points. The new UI system is better, and the technology is great. But as you said, it is adopting the old web standard instead of adjusting the workflow to fit Unity. Unity has an object based workflow, but the new UI system tries to force a more function based approach like on the web. Will be interesting to see where it will go from here.

This will unlock a workflow where you will be able to associate data properties, that can be strongly typed, within your UXML document. We are also looking at supporting event bindings this way.
This should remove the need to reference elements by class or name for the majority of use cases, e.g. binding data and logic to your UI layouts.

You can also use a hierarchy of empty gameobjects, each referencing an Element in the UIDocument, which would provide pretty much the same functionality as the existing workflow, you would just need to write a base component that finds the UIElement you want by name. But the new workflow allows for a better structure.

So there is really only one thing you have to pay attention to: getting the Elements by String. Everything else is completely up to you. You can create any architecture you want to. You can write code into the elements themlselfs, you can write them in plain C#, you can write them in MonoBehaviours or ScriptableObjects, you can search everything at the Start of the game or construct the UI completely from code, out of templates, whatever fits your project best.

Thank you for your input!
I hope you understand that what you are suggesting is a very long hacky solutions for what we used to do by litterly dragging an element from the hierarchy to the inspector!

Of course I can make my own query system, and I can get all instances (we have thousands btw) at start, you can also make your entire UI into a singleton class that passes references to whoever is interested!

everyone is now moving to strongly typed languages like TS or use webassembly to use your language inside the browser like blazor for example, and the main complaint is that unity is picking of where everyone has already finished

As you stated in your very first post of this thread: performance. And also: formatting. I worked on a project with localization and we needed auto-resizing textboxes inside of auto-resizing List views (just a simple SMS-Chat-UI for ingame texts) and oh dear, was that a pain. ForceRebuildLayout madness at every single text-element, every list with elements that are dynamically loaded and can have varying size (images, attached to chat messages).

c80f0f1006
Reply all
Reply to author
Forward
0 new messages