This week I began working on getting a basic User Interface across the program. I had to learn Unity's Event System and become familiar with now working with the User Interfaces for Augmented Reality in Unity. I was tasked with:
- Creating a basic start menu (play, quit)
- Creating interactive 3D buttons within the world space
The biggest thing about this week was that I had to learn about Unity's Event System. This took a very long time to wrap my head around it as there was so many explanations and so many different ways but I had to find one that worked the way we needed it to.
Unity Event System
I had to learn how the Unity event system worked in order to complete this task. This took a long time and ended up delaying my other tasks. The event system works by sending out events and one can subscribe a method to this event in a listener. For buttons I assigned the button change event to a method that then checks what state the change is to in order to do tasks.
Basic Start Menu
The menu I created for this was a very simple text and button menu. It displays the name of our game, and play, settings and quit buttons. The play and quit buttons are scripted to either change the scene to the ACC cabinet scene or else quit the game. There is a backdrop for readability and ABB and FlipSide in text at the bottom of the menu. These buttons needed the Event System in order to work correctly and I could not finish them until I knew this. The play button loads the acc cabinet scene asynchronously. This allows us to create some UI in the future for loading the scene since it is loaded on another thread.
Interactive 3D Buttons
I created a scene within Unity for buttons which could be used in the 3D world space. This task used what I learned already from the Basic Start Menu since it has 3D buttons and the event system in it anyway. I will be looking into using these buttons in a radial design around the player instead of a radial menu that was designed previously. This is from feedback to look into what is common practice within Augmented Reality UI.
Issues
An issue this week was there should have been a task Unity Event System Research or something along those lines. This is not anyone's fault how ever as it wasn't until I began working on the tasks that I found out how central this whole system was. This was a big thing for me to go and learn. My first task which should have taken 1.5 hours ended up taking 10 hours to complete because of this, however this is unseen work in scrumwise since it was not a task itself.