Unity Car Controller Comparison

Technical Tech
3 min readJun 14, 2018

This is my experience of trying to choose a car controller for a driving project.

I’m starting out creating a simple driving project in Unity and need a car controller for my project, I want something thats fun and simple to drive, an arcade style not a realistic one. It also needs to have decent performance, it’s main target is for phones and tablets and my benchmark will be an old IOS 9 Ipad 2 (OpenGL ES 2.0).

What do I mean fun and arcadey? I want the car to be able to drift and I want a visually bouncy suspension. Bonus points if the scripts are easy to use and mobile friendly.

I’m testing these (prices as June 2018)

I setup a mobile friendly scene, baked all the lighting, the car model is less than 50 verts and the wheels are verts. Simple mobile controls were added ready to be attached. I then built out each scene to the iPad and monitored its performance remotely via the Unity Profiler.

Performance wise they’re all pretty good, NWH is the heaviest of the bunch and is very fully featured, you get a lot of options and when not on mobile the performance is really good for what it does, but on an old device like an iPad 2 I think its just a bit too much.

HighRoads and MiniRaceCar both perform really well. I especially like the coding style of the Highroads Engine. I found the MiniRaceCar scripts well written but they require the whole engine to work they’re not really modular so I’m ruling it out form my purpose (its a great engine though). I found the HighRoads controller to be lacking a few options which I’d need to add in which were already available in Edy’s and NWH.

I was suprised that Edy’s Vehicle Physics performed so well, really comparable to the very bare bones Unity Vehicle Tools, although if you’re really looking for the highest performance customising the Unity Vehicle Tools is going to give you maximum flexibility to optimise everything.

I had read on some forums that the wheel colliders where very heavy weight but comparing the physics usage between the controllers which use them and use their own custom scripted ones, I’m not really seeing much impact. I think it’d only really be an issue if you’re using them in an some unusual non physics setup with your own physics.

Performance on the iPad

Vehicle Tools (uses the native wheel collider) ~12ms

Vehicle Tools Performance on the iPad2

MiniRaceCar (custom car controller with raycasts) ~ 12ms

HighRoads (custom controller and wheel behavior) ~13ms

HighRoads custom wheel behavior script

Edys Vehicle Physics (uses native wheel colliders) ~13ms

Edys Vehicle Physics Performace iPad2

NWH (custom wheel collider) ~40ms

NWH profile, note the increase in performance when the car is off the ground

--

--