GPF Docs

Guide to Provided ViewBindings

Guide to Provided ViewBindings

ViewBindings are UI components you can add to game objects on the Hierarchy. Every ViewBinding has a variable field on the Inspector panel that allows you to bind into any variable managed by the DataStore.

ViewBindings are responsible for updating UI automatically when the variable value changes. With the exception of ListVB all of the other ViewBindings expect variable to be cast-able to string.

Many ViewBindings requires another component to also be attached to the same GameObject because the ViewBinding will set the value of the component based on the variable field. We refer this as the "Companion" in the table below.

ViewBindings Descriptions

ViewBindings provided by GPF are described below and live in the namespace GPF.UI


TextVB

Displays variable value inside Text Component. Also supports replacements with {} notation, so {0} will be replaced by the first "replacement", which is essentially another string variable.


TextInputVB

Displays variable value.


ImageVB

Displays an image based on a variable value representing the SpriteID.


SelectChildVB

Turns on one child at a time, based on the variable value. Ideal use cases include Menus and showing/hiding elements depending on the state. A feature of SelectChildVB is that if you an animation controller with onEnter and onExit animations for a child, then those animations will be played during state transitions. You can also easily create such a controller by right clicking inside Assets and going to Create -> Game Plumbing Framework -> SelectChildVB Transition.


AnimationVB

Controls the animations on a single game object. The value of the variable is directly passed to the AnimationController on that object in the form of a bool with the value as the name. For example, if the value of the variable in the DataStore is "highlight" then the AnimationVB will set "highlight" to true in the Animation Controller on the object. It will also set all other variables (not "highlight") to false. This is useful for any non-menu that needs to animate.


ListVB

Displays a list of objects. Maps properties of each item in list to a UI instance based on it's child. This is the only component that expects variable to be IEnumerable<string>.


VB NameCompanion
TextVBUnityEngine.UI.Text
AnimationVBUnityEngine.Animator
TextInputVBUnityEngine.UI.InputField
ImageVBUnityEngine.UI.Image
SelectChildVB(optional)UnityEngine.Animator
ListVBGamePlumbing.Views.PropMapper

Examples

This video demonstrates how TextVB, AnimationVB and TextInputVB are used to create our Single-Player / Leaderboard Demo Scene:

This video demonstrates how ListVB, ImageVB, and SelectChildVB are used to create our Hello Content Demo Scene:

This video provides a demonstration of how SelectChildVB manages the states and state transitions for our Matchmaker Demo:

PropMapper

To use ListVB, you will need to add a PropMapper component to the GameObject ListVB is added to. Adding Propmapper will make a copy of the the GameObjects child for every element of the collection passed through the props field .

For example, we might want to display certain fields for our "characters" in a menu, so we create a menu, add a ListVB to it, and set the variable to "content.characters".

Then we can attach a PropMapper to the menu, and map "props" to "content.characters.\${id} "

${id} is a special notation that PropMapper supports by replacing ${id} with the id for each item in the ListVB variable ( content.characters ).

Prop mapper will copy the child gameobject for each character, and set the props on each character.

Other View Components

We have also included a couple of other view components you can attach to MonoBehaviors, but without binding to the DataStore.

NameDescription
SafeAreaProvides notch support.
FlexableElementProvides different anchors for portrait and landscape, allowing seamless editing in UI editor

© 2023 Launch It Labs INC