Most of this is currently being revised. Changes will be updated and old systems will be archived.
Technical DocumentationControls
Camera has to be locked on the horizon, if it turns with the plane you get dizzy. Keyboard Scheme W and S keys control the pitch, A and D keys control the Roll of the plane Mouse Scheme Mouse functions as a Control Yoke, and moving it controls the Pitch and Roll of the plane. Pressing and holding the C key will activate Free-Cam mode In this mode, the plane's rotation is frozen, and the mouse controls the rotation of the camera. In either Free-Cam mode, holding left click will activate the Vacuum When in Free-Cam, right clicking will shoot the first held object out of the plane in the direction the camera is looking. Vacuum details
The Vacuum is able to detect objects by "sweeping" a collision mesh with multiple layers, attached to the rotation of the camera. Any objects that pass into a layer of the mesh has physics imparted on it, pulling it towards the plane. Extra strength is applied the more layers the object is in.
The Vacuum has a max range that it can pull objects. Upgrades The Vacuum's properties that can be upgraded are as follows, with their technical names.
|
Game Objects, Detailed Asset ListsGame Objects
(https://tinyurl.com/3D-Model-Asset-Lists) NPCs and animals Main Villager (for demo) Cows Plane Base model, with each upgrade changing or adding an element Vacuum Game objects 3D Model Sheet Name of every model, file name, and location Detailed Asset Lists (link a doc/spreadsheet) Plane model Power upgrade model Speed upgrade model Procedures
|
Plane PhysicsUnity handles the planes Drag and Gravity by default. The specific values can be tweaked, but will always be present.
The normal forward thrust of the plane is handled pretty simply, with this equation: ((transform.forward * (planeSpeedAcceleration * Throttle) * Time.deltaTime) * 1000) transform.forward The forward Vector of the plane planeSpeedAcceleration A variable that can be changed in the Unity Editor window, for faster testing adjustments Throttle Linked to the mousewheel to allow the player to control the speed of the plane (slightly) There is a second forward thrust equation that kicks in when the plane is going half of its max speed. (transform.forward * (planeSpeedAcceleration * Throttle) * Time.deltaTime) * (1000 * ((maxPlaneSpeed - speed + (maxPlaneSpeed / 2)) / 100f)) This equation makes the added force to the plane get smaller the closer it gets to its max speed. It's supposed to help with the responsiveness of the plane. (speed is a float represented by this equation: Mathf.Abs(Body.velocity.x) + Mathf.Abs(Body.velocity.z)) where Body is the plane's rigidbody. The lift of the plane is more complicated, but can be reduced down to this equation (Mathf.Abs(pitchFactor * speed))*liftFactor liftFactor is an editor controlled value to allow for quick tweaking. pitchFactor is a float that has the value of 1 when the pitch of the plane rests between two degree values, EX: Between 0 and 40. The pitchFactor then diminishes down to 0 over the 20 degrees on either side of the two set values EX: If the plane is pitched down 10 degrees, the pitchFactor is 0.5. |
Custom Data Classes
InventoryItem
This data class holds information about items in the Plane's inventory as needed.
- The stored GameObject
- The current amount of the GameObject
- The max amount of the GameObject
Upgrade
This data class holds information about Upgrades, including it's cost, and it's benefit.
- ID of the Upgrade
- Name of the Upgrade
- The individual Costs of each resource
- The total cost needed
- The current stats that will be applied to the Plane.
Programs Used
(Come up with better name)
- Adobe Suite
- Premiere
- Photoshop
- ???
- Premiere
- Unity 2019.3.2f1
- FMOD
- Probably
- Probably
- Google Suite
- Drive
- Docs
- Sheets
- Drive
- Bitbucket and Sourcetree