Version 0.0.1 (12/5/20)
Added the ability to pickup/drop boxes
This feature was fairly easy to implement and is totally needed if this game is going to be about picking up boxes and moving them.
Essentially I raycast from the players camera and search for an "Interact" script, that interact script is very simple and has a single UnityEvent function that it can call along with a filter. What it then does is it calls a script on the package itself so that it knows to create a connecting joint between the rigidbody of the player and itself.
On click that joint is broken and the package is dropped.
Added the ability to deliver packages
To deliver packages you must first move them to their turn in location, which is a yellow cube at the moment. Once the box is in position you can pull out your phone by scrolling up or down on the mouse wheel. From there you select the camera app and take a photo of the package. Once it detects that everything is correct you get a little bit of money depending on different factors. (Distance, Box Type, Damage Done)
The way I added this into the game was once again using raycasts along with a couple other features. The phone screen itself is just a render texture that is hooked up to a camera placed roughly in the same position as the players face. Then multiple other things are checked to make sure the package is in position and in frame of the camera.
Added a player model
My main goal with in creating the player's model was to make it simple and cartoony. It looks somewhat generic but it functions as it should and is set up to allow different facial expressions in the future.
It's also fully rigged up with bones but I chose not to set up Inverse Kinematics at all and I will regret that in the future. I can always go back and add that if animation gets too tiresome later on.
Added a vehicle (The Bicycle)
The bicycle's only purpose right now is to serve as an introductory vehicle and not a practical one for later in the game. It really can't carry much and the controller is kind of funky at the moment but it allowed me to get the vehicle controller developed.
Added the phone that let's you use multiple different apps (Map, Scanner, Camera, Stats)
You can see the phone and its apps in action in some of the above gifs but basically I added the phone as a way to interact with the world and get information easily without having to make a complicated and cluttered hud.
There are four apps at the moment and they all serve their own purpose. The Camera App is used to take a photo of the delivered package and finalize the delivery so that you receive payment. The Scanner App is used to scan a box and set it as your active mission. The Stats App only displays how much money you have right now but in the future I'm going to add more info. And Lastly The Map App, this app is straightforward and acts as an overview map that shows where you destination is in the world, you can also zoom in and out when using it.
Added a compass at the top of the screen to direct you to your objective
The compass works great in combination with The Maps App because it lets you see what direction you need to head in to reach your destination. Later I think I'm going to reduce it's width so that it doesn't go from one side of the screen all the way to the other.
Getting that feature to work in the first place was fairly difficult because I had to change vectors and quaternions into angles that then corresponded to position values for the sprites at the top. It was a pain but I like that the result is functional.
Added a long list of items that are contained within boxes
I added this feature just for fun because it adds a little bit more information as to what you are delivering and gives me the chance to slip in funny items and easter eggs. For now it doesn't consider scale when assigning names to the contents of a box so that leads to a very large disconnect between those two things, I might fix that in the future or I might keep it.