School Project
2024
School Project
2024
Role: System & Engine Programmer
Description
LandFish
"As Fisherman, use your special lures to defeat fanatic sea creatures that have crawled out of the ocean. Travel with your boat between three islands, solve puzzles and catch their holy cod to send them back to the depths"
The first versions is declared below. Newer version in Titan Engine
The sections below describes some highlighted features developed by me.
Few of my colleges wanted to program UI so I took it upon myself to create a layout system that's inspired of Unitys Layout system. Because this will handle position, rotation and scale it was decided to create a RectTransform (As Unity does) that use Transform as a base class.
RectTransform will communicate with a Canvas component that represent a area were it should draw any rendering object (such as images or Text). With a Canvas the RectTransform can anchor itself corners of a canvas size and move with it when the Canvas changes (Typically when the resolution changes such as a mobile phone landscape mode).
Each RectTransform inside another treats each other as a "Canvas" allowing them to anchor to their RectTransform. This allows the render elements to scale and move when elements change.
This system saves us time and ease to develop with rather then creating the layout with code.
For our UI Button I developed a pipeline for Unity buttons by storing Unity Button data. Then storing it inside a EventManager that stores functions that we can retrieve by key string.
When a button is created in scene initialize the the buttons call adds a function that has stored a value if any inside from Unity. GameEvent contains a std::function and values that will be passed into it as arguments.