\\ [LOOK AROUND]
The first thing I did this week was work on improving the drive chain interaction. Previously, the player didn’t really “move” along with the weight, and exiting the interaction before reaching the second floor resulted in a jarring transition. To fix this, I made it so that if you exit in the middle of the interaction, you can see the protagonist sitting on the weight. In this state, you can either look around or re-enter the interaction, but you cannot move. Movement is enabled once you either reach the second floor or return to the first floor.
// [COLOR DOOR]
After that, I focused on the door to the first floor of the clocktower. Levi had mentioned that we should use an RGB slider for this door (you have to adjust the sliders to match a certain color, which then opens the door). As I was about to work on it, I had the sudden inspiration to try and combine the concept of RGB sliders with a stick shift mechanism.
However, after getting some good feedback from Campbell, I realized that a stick shift just added an unnecessary layer of complexity to the concept of RGB sliders, a concept that many people might not be familiar with in the first place.
So, I ended up switching to a more basic RGB slider setup, which I think works quite nicely.
\\ [MESH COMBINER]
As the weekend began, I turned my attention to a little tool we were in need of – a script to combine separate meshes into one mesh. This is useful for when you have large amounts of environmental objects like trees and ferns. Combining them into one mesh decreases the amount of draw calls and the amount of dynamic batching that Unity has to do, which results in improved performance.
Here’s the tool in action:
I then added the ability to combine all meshes whose MeshRenderers use a certain material. This is especially useful when combining objects that use multiple meshes (for example, our trees have separate meshes for the trunk and the leaves).
In the above gif, you have to manually choose the target material. To prevent having to do this, I then added the ability to loop through all of the child objects of a GameObject and combine meshes based on what materials their MeshRenderers use. So essentially, now you only have to run the script once, instead of having to keep selecting a different material like in the above gif.
Here are the results of testing the combined meshes versus the old individual meshes.
// [MOVE THAT GEAR]
Lastly, Levi finished up the design for the Magic Window interaction, so I made the first pass of that interaction (it involves moving a gear into “window space”, rotating the window, and then moving it back out of window space).