Reactor Control Implementation, and OOO

Hey Folks! Work continues on the reactor controls, implementing the layout and artwork I created into working Unity UIs.

Today's screenshot features the upper bank of controls seen in the example layout I posted a few days ago. This is the UI as seen in the game, with random values pumped into the various LED indicators. Progress was slightly slower than anticipated, due to a few things I should've...well, anticipated.

First, there's the usual Unity UI layout bumps. I created the vertical arrays of LEDs and laid a bunch out before I remembered to test them in multiple resolutions, and the layout fell apart when scaled. The trick was to make each LED live within a panel, and then populate the LED arrays with copies of that panel, instead of the LED images directly. This way, I didn't have to do any funny scaling/spacing tricks. (The same went for the text labels next to each LED light.)

During the process, I learned about a different canvas setting that might make this easier in the future, but using it involves redoing the entire layout. So I might wait until a new GUI to test it out.

The next trick was a bit more unfamiliar to me. In the process of adding Chinese labels to elements, I had to remember to check the context/meanings carefully. Some words can have multiple meanings, or even exist as multiple parts of speech, and that can mean different translations for a given word.

Also while doing this, I ran into cases where my Chinese font was lacking characters for certain words. As it turns out, I was using a really small subset in my font (~400), and I had to custom generate a font asset with a larger range of characters (~2500). I guess this is something a localization expert would know already, as there are methods for having fallback fonts already built-in. Not to mention standards for how to calculate which characters are to be included in the primary and fallback fonts, and in which order.

Anyway, I stumbled through that.

Knobs are not a built-in UI feature of Unity, so I ended up using the Unity-UI-Extensions project to get one of those. And even now, I'm not sure it'll work out of the box due to the lighting/shading I have on the knob. I may have to add some custom image swapping/snapping code for it to look good when moving.

That said, I think it looks pretty good! There are some areas that could use polish (like the smeared LEDs under CORE TEMP), but it's turning out roughly the way I wanted. Once I get the rest of the pieces in place, I can start hooking some logic up to them so they light up in the correct order for the video.

That'll have to wait a bit, however, because I'll be out of the office for about a week and a half. Normally, this week would be the one I take off, but we ended up shifting it back a week to line-up with everyone's schedule. I'll still be around, for the most part, just not posting news each day. I'll be back on the 11th, hopefully recharged and ready to go!

Happy New Year, all!

Tags: Ostranauts


Rovlad's picture

>There are some areas that could use polish (like the smeared LEDs under CORE TEMP)
Yes please! I always thought those horizontal smears are much better at emulating poor eyesight, rather than adding to visual fidelity. Rectangular LEDs look much better to me in this image.
Have a good rest, and hopefully 2019 turns out to be both productive and profitable for you. :)

dcfedor's picture

Yeah. There's only so far I can stretch art before it looks wonky, so bespoke graphics are often needed. And probably worth the effort, as it adds visual variety to the UI.

Thanks for the well-wishes! I hope your 2019 is prosperous, as well!

Dan Fedor - Founder, Blue Bottle Games