Powerslide Kart Physics

WebGL Demo | Windows Demo | Android Demo | Documentation | Support Email

This is the most straightforward solution for achieving smooth, responsive kart physics. Familiar mechanics including jumping, drifting, and turbo boosting are all here, along with limited item/powerup support and basic waypoint AI.

Three common boost modes are featured, including Drift Auto, Drift Manual, and Manual.

Drift Auto is the most common kind, rewarding karts with boost following successful drifts. Boost amount given is indicated by sparks coming from the rear wheels.

Drift Manual is a little more technical, requiring the press of a secondary button once the boost meter has filled to a certain amount, but not all the way. The drift meter fills while drifting, and several boosts can be performed during a single drift.

Manual is the most simple type, acting like standard boost in racing games with a typical boost meter. Drifting fills up the meter, but boost can be used any time by holding down the boost button.

Two item types are supported out of the box: projectile items and turbo items. Four example items are included, these being the trap, bouncer, homing item, and turbo boost.

Rudimentary waypoint-following AI is included, but this is mainly for demonstration purposes.

This asset supports both the legacy input manager and the new Input System Package and includes example scenes for each.

The PDF documentation contains a walkthrough for setting up a kart from scratch as well as a script reference for users interested in expanding upon the asset.

Try out either the WebGL, Windows, or Android demo to see how the karts feel for yourself.

For inquiries and assistance, reach out for support by email to justin@justinvoke.com. You can also post in the forum thread. Customers are asked to submit an invoice number from purchase when contacting for technical support.

Release Notes

1.07 - Added support for steering wheels and handlebars that turn with the new KartSteeringWheel component. All kart prefabs have been equipped with steering wheels/handlebars. - All kart prefabs have been given the KartBump component for better feel with kart-to-kart collisions. - All kart prefabs have been tweaked to have slightly higher gravity and a bit of visual tilting when turning and accelerating or braking. - Kart wheels can now be tilted and have the visual wheel more correctly sit on the ground surface. Raycasts for physics behavior still go straight down. The bike prefab's front wheel has been tilted. - Some redundant code in the Kart.GroundCheck() function has been consolidated. - The package now requires Unity 2019.4.0 or later due to new Asset Store guidelines. ____________________ 1.06 - Fixed a bug related to wheel raycast hits not being cleared and sorted correctly, sometimes causing wheels to sink into the ground when driving over overlapping colliders. - New "autoStopNormalDotLimit" variable on the Kart class to limit the maximum steepness of slopes that can be parked on. Parking/auto stopping has been improved by canceling out sliding caused by gravity, allowing for parking on steeper slopes. - The Kart.landEvent event will now only invoke if the local vertical speed of a kart is less than -1 units per second in order to prevent the landing sound from playing repeatedly when driving on very steep slopes. ____________________ 1.05 - Added support for the Input System Package with new prefab and demo scene variants. See the Input System section in the manual on page 31 for info on setting up karts with the Input System. - See the "Demo (Input System)" and "Demo Mobile (Input System)" scenes. New prefabs can be found in the Prefabs > Karts > InputSystem and Prefabs > Scene folders. - Garbage collection has been reduced in a number of scripts: Kart, KartEffects, KartBump, SpawnedProjectileItem, and TireMarkMaker. - Added new "maxCollisionContactPoints" variable to the Kart class indicating the maximum contact points that can be evaluated in OnCollisionEnter and OnCollisionStay. This cannot be changed at runtime, for optimization purposes. - Added new "canDriftInAir" variable to the Kart class to enable or disable drifting while airborne after starting a drift while grounded. - The "maxWheelCastHits" variable on the Kart class can no longer be changed at runtime, for optimization purposes. - The package now requires Unity 2019.3.0f6 or later due to optimizations to TireMarkMaker utilizing Mesh.SetVertices/Triangles/UVs/Colors calls. ____________________ 1.04 - Added new gravity variables to the Kart class enabling custom gravity and sticking to surfaces. (See them inside the Gravity foldout in the inspector and read the Custom Gravity section in the manual on page 12.) This also includes a new preset type for kart gravity called KartGravityPreset. The "gravityAdd" variable has been moved from KartJumpPreset to KartGravityPreset. - Added new gravity variables to the SpawnedProjectileItem class and enabled smoothly moving on walls. - The ItemCastProperties struct has a new variable "castGravity" to allow items to inherit kart gravity. - Added "rollWithKart" and "rollSmoothRate" variables to the KartCamera class allowing the camera to roll upside-down with karts. - Added new KartBump class to allow karts to bump off of each other upon colliding. - Added "dontInvertSteerReverseAccel" variable to the Kart class to allow karts to not have inverted steering while reversing and accelerating. This is enabled by default. - Added lower bounds on variables in division operations to prevent division by zero errors. These are variables that would not be set to zero in the first place. - Reformatted all scripts to not have every brace on its own line and updated copyright year on all scripts to 2022. ____________________ 1.03 - Added new Demo Mobile scene containing UI buttons for mobile input. A new KartInputMobile class has been added and applied to a new set of kart prefabs for fetching mobile input. The InputManager class has also been updated with new functions and a struct for setting mobile input. See the documentation for details with a new section titled Mobile Input on page 30. - Added new "airDriveFriction" variable to the Kart class to adjust how karts can accelerate and brake while airborne. - Updated copyright year in all scripts to 2021. - Unnecessary package dependencies have been removed. ____________________ 1.02 - Added new BasicWaypointFollowerDrift class to allow AI karts to drift around turns. All of the included AI prefabs and demo scenes now use this instead of the original BasicWaypointFollower class. - Added "moveParticlesWithDrift" variable to the KartEffects class. Setting this to true means that the drift boost particles will be moved and rotated to the side of the kart corresponding with the direction it's drifting (default behavior), otherwise they will not change. - Refactored the homing target logic of the SpawnedProjectileItem class to remove redundant code in the loop. ____________________ 1.01 - Added boost reserve meter to show current boost amount in use. See the UIControl class for new variables. - Added "canJump", "canDrift", "canBoost", "visualDriftFactor", "visualDriftAirFactor", and "driftManualFailCancel" variables to the Kart class.

Basic Information
Latest Version
1.07 (10 Jul 2023)
Publisher
JustInvoke
Category
Templates/Systems
Size
27.5 MB
Price
free
Asset Rating
(22)
Extended Information
Unity Versions
2019.4.0
Render Pipelines
BIRP URP HDRP
State
Deprecated