I have always wanted to build an underwater escape room experience and the unity assignment was the perfect foil for doing the same. When I started on the assignment, I knew that I wanted the following things:
Build a terrain of my own in Unity.
Play with lighting of the environment.
Create a responsive environment that acknowledges your presence.
Use the unity animator tool.
While my initial plan was to build an experience in which the person is trapped inside a ship with a shark trying to break in from the outside, it was out of my technical scope. So, I pared it down to something manageable that I could do with the finals madness going on.
Making the terrain in unity was pretty trivial but the models proved to be a huge pain. Initially, I used extra detailed models that I found on thingiverse and other places but they kept dropping the frame rate. So, I had to keep paring down my polygon models to make them work.
The schools of fish also proved to be a big problem. I had 7 schools of fish in the environment but they dragged down the frame rate. So, I had to write a script that they will be triggered only when I am near their start location. Then, I wrote one more script which makes them hurry away from you in a random direction when they come near you. Once the fishes were done, I focused on the sharks.
I created 2 parts of the shark. One was the body and the other was the mouth. The mouth was animated in unity to snap back and forth as it moves towards the player when one ventures into their area. (Basically, a big hit box triggers the shark to come towards you).
You can see the piece here: