For the example setup a primitive capsule will be used (GameObject menu > 3D Object > Capsule).
Ship
(add a new tag if it does not exist). The tag is only necessary so that the ship changer can find your ship.WaterObjectWizard
component to the ship object.AdvancedShipController
component to the parent object (the one containing the Rigidbody
).CenterOfMass
component to the parent object and adjust center of mass to be near the bottom of the ship (green sphere). If this is not done the ship will most likely tilt to the side since the center of mass in Unity is calculated as a center of volume of all of the Rigidbody colliders, which is unrealistic for ships which generally have the center of mass near the keel.Camera
of any type to the ship object (as a child) and tag it ShipCamera
.V
button (default change ship button). The boat is now floating and the rudders turn.
Rudder Transfrom
field under Rudders foldout. WaterObject
component to the rudder so it too can interact with water.Apply Thrust When Above Water
is left unchecked).Larger ships usually have bow and/or stern thrusters to help them maneuver. Thruster is indicated as a blue sphere with a a line indicating direction of thrust when positive input is pressed.
Engine sound is achieved through simple pitch modulation. To set up sound:
AudioSource
to the ship object and assign a looped engine sound clip to it. Drag the AudioSource
to the field Running Source
under Engine foldout.Starting Source
and Stopping Source
fields. These fields are options. Adjust the Start Duration
and Stop Duration
fields to be somewhat shorter than the length of starting and stopping clips.
Engine represent a single inboard or outboard engine. It handles power delivery, propeller rotation and engine sound.
Each ship can have multiple engines.
By default the thrust position of the engine is at [0,0,0]. Be sure to adjust this value to fit your ship.
IsOn
- is the engine currently on.MinRPM
, MaxRPM
- minimum and maximum RPM the engine can achieve. Stalling is not supported.Max Thrust
- maximum thrust that the engine can generate at MaxRPM
.Spin Up Time
- time needed for the engine to reach MaxRPM
.Starting RPM
- RPM at which the engine will run while starting.Start Duration
, Stop Duration
- duration of engine starting and stopping. Influences for how long the start sound will be played.Thrust Position
- position at which the thrust force will be applied. Local coordinates.Thrust Direction
- direction in which the thrust will be applied. Local coordinates.Apply Thrust When Above Water
- set to true if you want the propeller to work even when out of water. False by default.Reverse Thrust Coefficient
- thrust coefficient when throttle is negative.Max Speed
- maximum speed a propeller can achieve. Thrust Curve
- thrust percentage (of Max Thrust
is represented on the Y axis) and speed is represented on the X axis as a percentage (0,1) of Max Speed
). This is essentially a speed/efficiency curve of a propeller.Rudder Transform
- a transform representing the rudder. Can be used when the engine is outboard and the thrust should be applied in the direction of the rudder.Propeller Transform
- a transform which will represent the propeller. Visual only, does not interact with water.Propeller Rpm Ratio
- ratio between engine RPM and propeller RPM.Apply Thrust When Above Water
is left unchecked).
Rudder is used for steering the ship.
RudderTransform
- the transform that will be rotated.MaxAngle
- maximum angle of rudder rotation to each side (e.g. +/- 30).RotationSpeed
- rotation speed in deg/s for the rudder.LocalRotationAxis
- the local axis around which the RudderTransform
will be rotated.Rudder Transfrom
field.WaterObject
component to the rudder so it too can interact with water.
Thrusters can be used to move a ship without using the main engine(s). They can either apply thrust to the port or starboard side of the ship.
Position
- position at which the thrust will be applied.Max Thrust
- maximum thrust in [N] which can be applied.Spin Up Speed
- reaction time needed to reach Max Thrust
Thruster Position
- is it a bow or stern thruster. Determines input mapping.Propeller Transform
- transform of the propeller that will be used as a visual representation of the thruster. Has to have Unity-correct rotation and pivot.Propeller Rotation Direction
- rotation direction of Propeller Transform
.Propeller Rotation Speed
- rotation speed of the Propeller Transform
.Drop Anchor When Inactive
- if there is an Anchor
component attached to this ship the Anchor will be dropped on sleep.Weigh Anchor When Inactive
- if there is an Anchor
component attached to this ship the Anchor will be weighed (raised) when ship wakes up.Stabilize Roll
- if true a torque will be applied to the ship to try and negate any roll. Roll Stabilization Max Torque
- maximum torque that will be used for roll stabilization.Stabilize Pitch
- if true a torque will be applied to the ship to try and negate any pitch. Pitch Stabilization Max Torque
- maximum torque that will be used for pitch stabilization.