B Propulsion System

by [email protected]

We have built a series of “thrusters”, Transform or Physics components that changes game objects position or rotation, can be used as thrusters, engines, controllers, hammers, wind etc.

For more detail this asset from the Unity Asset Store: Click Here

This is a paid asset, but now you can download the “B Propulsion System” for FREEPlease keep in mind that this package is provided only for learning purposes or to test before buying the product, NOT FOR COMMERCIAL PURPOSES.

B Propulsion System v1.3.3

Download Now

It is a “system” because we have pre-built helper components that will speed your development time, like: throttle controllers with keyboard or joysticks, special effects (particles, lights and sounds) and more.
Examples of usage
* continuous force applied: car, spaceship, boat, submarine, wind, character jump etc
* one time push/nudge: canon ball, pinball etc
* simple hover mechanic
* simple attract/repel forces (based on colliders, ex magnet/gravity)
* moving a GO a path of nodes (points)

Friendly
* tooltips for all the public properties
* open code – the code is in C#, open to read and extend (not hidden in a library)
* all the classes are well documented
* designed to be extended – the logic is split to multiple functions so you can extend our classes and implement your own custom components, optimized for your specific needs.
* Platform independent – it uses only basic UnityEngine features, should be compatible with all platforms (Android, iOS, tvOS, WebGL, Xbox etc)
* The thrusters direction is the same as the Green GO Axis for convenience

Plug&Play
* over 20 DEMO examples and prefabs that can be used right away
* drag&drop components with default values that suit most cases
* easy setup thanks to visual friendly components, tooltips and comments
* each thruster pushes/moves an object in one direction, add a thruster for each desired direction

Common properties/features (for all thrusters)
* state – ignition on/off
* faults – temporary disables the thruster, can be used as penalties or debuffs
* throttle – an absolute value clamped between a min&max
* normalized throttle – as value between 0-1 and 0-100, to be used as relative/percentage control
* custom multi component inspector
* speed or force to push

Physics thrusters (requires a rigid body)
Thruster Force – add a Force to a rigid body for each frame (or physics tick), used for simple physics.
Thruster Force Point – add a Force and Torque to a rigid body, used for realistic physics, it’s position and rotation directly affects the force.
Thruster Applied Collider – add a Force to another Rigidbody, push/pull (attract or repel), used for simple magnet/gravity.

No physics thrusters (requires a Transform)
Thruster Transform – increase a Transform position.
Thruster Rotate – increase a Transform rotation based on it’s rotation.
Thruster Path – moves a Transform position along a predefined linear path made by multiple nodes.

Controllers (1 or more attached thrusters)
* Key – binds a Keyboard/Controller key event to actions: Ignition (on,off,toggle), throttle (accelerate,decelerate;, to minimum, to maximum).
* Axis – used for joysticks, each Axis can affect 2 series of thruster (one for each side of the axis)
* Hover collider – automatically accelerate/deccelerate based on collider’s raycast collisions. Multiple sensors can be created to scan for collisions.
* Property Relay – expose all thruster properties so they can be controlled by custom scripts or animations (Animation, DoTween, iTween etc)
* Continuous – accelerate to maximum and/or minimum throttle for predefined periods of time, or leave it in “endless” mode

Helpers
* UI Slider – link a thruster to an UI Slider component both ways
* Light – link a thruster to 1 or multiple Light component. Based on throttle automatically can control the Intensity, Range and.or Color(gradient).
* Particle – link a thruster to 1 or multiple ParticleSystem components. based on throttle can control the StartLifeTime, StartSpeed and/or Emission RateOverTime.
* Sound – link a thruster to 1 or multiple AudioSource components. Based on throttle can control the Volume and/or Pitch.
* Fault Collision – apply a fault to all Thrusters that collides ,Ex: can be used as a temporary disable an engine when they hit a spike
* Path line draw – populate a Unity.LineRenderer with a PathActor next nodes.

You can combine any controller or helper with any thruster!
Debug
All the components have a DebugLog flag, when turned on it displays in the console relevant messages. Example the debug flag on a controller will throw a message each time a key press is detected and the action was made.
Use relevant gameobjects naming, they will be displayed in the debug messages. Example: attach the Controller component to a “ControlThrusterLeft” game object so you will know from which controller the debug came from.

Contact for pre-purchase questions, support or feedback:
[email protected]
* Unity Connect Profile
* Unity Connect Project Chat
* Asset store comment
* Twitter @ArtisanAdrian
* Youtube @Artisan Unity Assets

What’s next?
* improvements, fixes and new features based on your feedback
* 2D thrusters
* powerups and debuff system (on-the-fly change thruster properties like min/max throttle)

Common Q&A
* Why is the package so large (6mb)?
The scripts size is 100kb, the rest are the assets for the DEMO scenes, you can remove them at any time.
You do NOT require the subfolders “Demo” and “Identity”.
* What platforms are supported?
Should work on any platform, contact me to solve any possible issues.
* Can I control the Thrusters with DoTween,iTween,my own scripts, etc?
Yes, you will need the Controllers.BThrusterPropertyRelay component to directly control the thrusters’ properties and states.
* Can I use multiple controllers for 1 truster? Key vs joysticks
Yes but you have to be careful, they will most likely cause problems/conflicts, same as having 2 bosses and 1 employee.
You should have at most 1 controller that auto decelerates.
* The AppliedCollider component does not work!?!
Check the following:
– force, throttle are positive numbers
– the thruster does not have a fault
– The “victim” must have: A RigidBody that is NOT kinematic, a 3D Collider, mass > 0
– check the thruster Radius, you can see it in the Scene Editor (see Gizmos)
– if a red line is drawn in the Scene (debug line) then the force is applied, increase the Force
– The “victim” Rigidbody does not have constraints on X/Y/Z position
– The “victim” GameObject has the same Layer as the Thruster’s “Affect only layer” value

 

Related Posts

Leave a Comment