Main menu:
There are numerous ways a circular GUI bar can be implemented. Such ways include, and are not limited to:
Creating an entire animation within an active object
Use Sin and Cos to individual place active objects and setting the angle based on the needed angle
Using several different objects to compose the GUI bar
While each of these methods work, each have their respective disadvantages. This tutorial explains how to create an object-based GUI bar, which has the disadvantage of being too object heavy. We have two values which reflect the GUI's value; Actual_Value and Current_Value.
Actual_Value is the GUI's actual value. Event triggers, such as "Object A collides with Object B", sets this value.
Current_Value represents the value displayed on screen. Current_Value approaches Actual_Value. If Current_Value and Actual_Value are 0 and 50 respectively, Current_Value increments frame-by-frame until it equals Actual_Value. Likewise, if Current_Value exceeds Actual_Value, Current_Value decrements frame-by-frame until it equals Actual_Value.
In summary, a circular GUI can be constructed in a few steps. You need to create the individual segments, position them (really just manipulate their angle) and associate the segment with a certain GUI value. If any segment's associated value is higher than the GUI's value, that segment should be destroyed.
This tutorial also explains how to automate the process of incrementing and decrementing the GUI. For this, we keep two separate values, one represents the current value displayed by the GUI (Current_Value) while the other represents the actual, immediate value of the GUI (Actual_Value). Any event which should modify the GUI's value modifies Acutal_Value. When Current_Value is different than Actual_Value, Current_Value increments/decrements towards Actual_Value.
Combining these two mechanics provides an easy and, yet, robust implementation of a circular GUI. Check out the example file located at the top and be sure to rate this tutorial! You can add additional flair by adding animations or color changes to your circular GUI.