# Welcome

About AVC and what's included in the package

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2Fq47jFPAODHyKt3a0iaAp%2FHeader.png?alt=media\&token=77affe11-9b99-45c6-a8f8-9d722e25b8ba)

## About

Arcade Vehicle Controller (AVC) is a simple vehicle controller asset allowing you to create any type of vehicle – car, hover car, motorbike, boat. The customizable arcade-y feel to the vehicles gives a fun, satisfying, player experience to your vehicles.

Included is a Vehicle Builder editor window, which allows you to setup a new vehicle in seconds! Just link the required objects and fill in the details, press a button and you’ve got your new vehicle!

The values for a vehicle (speed, turning, drifting, etc.) are saved in a ScriptableObject, meaning you can re-use the same values for hundreds of different vehicles, and only have to tweak them in 1 place.

Also included, are examples of how to interact with the vehicle controller for player input and AI.

## What’s Included

**/Demo/** - In this folder is extra items that are used purely for the demo scene. Once you no longer require the demo scene, you may delete this folder without any issues.\
\
&#x20;**/Examples/** - This folder is important, it holds examples for various parts of the asset for you.

**/Examples/AudioData/** - Example AudioData assets used with the demo Car and Motorbike.

**/Examples/CollisionData/** - Example CollisionEffectsData assets.

**/Examples/DriftSettings/** - The default DriftSettings asset.

**/Examples/Effects/** - Quick, simple effects used to demonstrate smoke trails and tire trails from the vehicles. New to v1.5 - this folder also includes two collision effects. They’re here to show setup, they’re not production quality assets.

**/Examples/VehicleModels/** - FBX files for the vehicles, and their prefabs with the correct hierarchy setup that the asset requires.

**/Examples/VehiclePrefabs/** - Premade prefabs of each vehicle type. These are used in the demo scene. Use these as reference if you encounter any issues with your own vehicles.

**/Examples/VehicleSettings/** - These ScriptableObjects hold the data for each example vehicle type. A vehicle requires a vehicle setting.

**/Materials/** - Physics material used on the vehicle’s collider.

**/Scripts/** - The scripts used to simulate the vehicle movement and control the effects.

**/Scripts/Audio/** (new in v1.5) - Scripts related to AVC's audio solution.

**/Scripts/Collision/** (new in v1.5) - Scripts related to vehicle collisions.

**/Scripts/Editor/** - Editor scripts, which give a custom inspector for VehicleBehaviour.cs, and the vehicle builder editor window scripts. In here there is also a ScriptableObject to save your builder window data.

**/Scripts/Examples/** - Example scripts to show you how you might want your own classes to communicate with VehicleBehaviour.cs. These are optional, however, they are used on the example prefabs, deleting these scripts will give you missing component references on those.

## Unity Packages

The demo scenes require some of Unity's packages to work. When importing AVC a prompt will be displayed asking for you to confirm the import for the following packages:

* TextMesh Pro
* Cinemachine


# Layer Setup

To work correctly, AVC requires a ground layer to be set and used – this stops the ground check raycast from hitting the vehicle collider and causing issues with the movement. You can use multiple layers (eg: ground, road, sand, water, gravel, grass, etc)

After importing AVC, you should be greeted with the layer setup window:

![AVC layer setupi window](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2F1rNMzNfn9V43FyPuyrdC%2FSetupWindow.png?alt=media\&token=c4c0b2bd-34bd-425b-a8e2-6ab2e0aa2e09)

\
If that window doesn’t automatically appear, select Tools -> e23 -> ‘AVC Setup’. Clicking the ‘Add Layer’ button will automatically add ‘Ground’ into ‘User Layer 9’ (found in Edit -> Project Settings -> Tags and Layers). If layer 9 is not blank, then the setup will not continue, and you will be given an error.\
\
It's important to check this layer is set as the 'Ground Mask' correctly on any [Vehicle Settings](/vehicles/vehicle-settings) you use with your vehicle, as well as for any meshes you wish to be drivable (select the road/ ground GameObject -> use the 'Layer' drop down at the top to select your ground layer).

## Manual Setup:

1- Open the Tags and Layers window (Edit -> Project Settings -> Tags and Layers).

2- Find an empty user layer.

3- Enter ‘Ground’.

4- Go to \Assets\e23\ArcadeVehicleController\Examples\VehicleSettings

5- For each settings asset set the ‘Ground Mask’ as the layer you created in step 3.

6- Load the demo scene.

7- Select the game object ‘Tracks’.

8- Set the layer as the layer you created in step 3, and yes to change all children.

## Box Collider

There's an additional layer setup required if you're using the box collider. Add two new layers called 'CarMovement' and 'CarCollision' (though, you can name them as you please).

Then in Project Settings -> Physics, change the collision matrix to untick these two new layers from interacting with each other.

![Collision Matrix](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FvuvkjFLehDR5V6yljHR5%2FCollisionMatrix.png?alt=media\&token=8699a625-b557-4311-8883-8ff14900e200)


# Demo Scenes

The demo scenes are located in /e23/ArcadeVehicleController/Demo/Scene/

Load the scene and press play. The controls are:\
&#x20;\- WSAD to move\
&#x20;\- C to change the camera between top down and follow\
&#x20;\- R to reset the vehicle position\
&#x20;\- T to view the AI, or return to playable vehicles

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MAvgWXWSnZT1uQxW6OV%2F-MAvhESQuRR08gTNwQCx%2Fimage.png?alt=media\&token=5ea3e4f9-d7fb-4bce-b7dc-1fb6cd1da4dd)

Use the buttons along the bottom of the screen to swap between playable vehicles.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MAvgWXWSnZT1uQxW6OV%2F-MAvh6ZCMkrqXrELrGE_%2Fimage.png?alt=media\&token=969276a2-bd65-4f7c-82ba-e6fd0935ad9f)

## Mobile Demo

The mobile demo scene is the same as the main demo scene, however this scene has touchscreen controls.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-M_pAJshGnpWj0SHuNo0%2F-M_pC8nzQ1Z_AyEuCi5n%2Fimage.png?alt=media\&token=617df43e-fc90-4255-93f9-538de10e4a91)


# Preparing Your Vehicle

AVC requires that your model be setup in a certain way, so that various parts of the vehicle rotate correctly - for example: wheels rotate around the center and the front wheels turn on Y correctly.

## Model Preparation

1- For the vehicle to work correctly, the hierarchy needs to be setup in a certain way. Below is an image of how the included demo vehicle model imported, this won’t work.

![Unorgnised model](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FC4ahCMvBfQlLtYsfi9nb%2FUnorgnisedModel.png?alt=media\&token=69a87f79-1951-41d8-920c-d87f36e42d2b)

2- Compare that with the hierarchy for the prefab.

![Correct model layout](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2F6JWT5WTpCjV8dbCywEmt%2FOrganisedModel.png?alt=media\&token=775c4151-7b65-4431-82f9-647e5d8d362e)

**Model** holds everything, and should be at position 0,0,0.

**Body** has all the body parts underneath it, and should be at 0,0,0.

**Parts** is optional, required for this model because the body faces in the wrong direction. This GameObject is rotated 180 on Y.

The two front tires require an empty GameObject (**FrontParent**) to deal with their turning rotation. Due to the pivot point on these wheels, they also require an additional empty GameObject (**tireFront**) to get the pivot to be at 0,0,0 for the correct rotation.

Parenting the front wheels:\
3- Create an empty GameObject.

4- Copy the position of your front left wheel.

5- Select the empty GameObject and paste the position from the front left wheel.

6- Draw the front left wheel to be a child of the empty GameObject and rename to “FrontLeftParent”.

7- Repeat for the front right wheel.

8- (Optional) The same process can also be used for the rear wheels, especially if the pivot for those wheels is not at the center of the wheel geometry.


# Building Your Vehicle

Now that your vehicle model is ready, you can open the vehicle builder and make your working vehicle. From the menu bar -> Tools/e23/AVC/Vehicle Prefab Builder.

![Prefab builder window](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FaxSzuoCWEbSaqDZLg1cz%2FPrefabBuilder.png?alt=media\&token=d21743a6-d35f-4b1a-920c-998d76df6e7d)

### **Vehicle**

**Vehicle Name** – the name you want your new vehicle to be called.\
**Vehicle Model** – the model that you have just prepared to be used in the previous section.\
**Vehicle Type** – how many wheels does the vehicle have.

**Physics Material** – which material to add to the vehicle collider – optional, but recommended to use the included physics material.

**Use Box Collider** – v1.5 - This is now no longer optional. The original setup is being phased out, in favour of the box collider exclusively. If you still require the old setup, please see lines #192 and #607 in VehiclePrefabBuilderEditorWindow\.cs\
The original setup for AVC used just a sphere collider, for movement and collisions. Leave this option false for that setup, enabling this option will use a box collider for more accurate collisions.

~~**Vehicle Body** – the name of the body in the model.~~ Removed in v1.12

**Wheel Names** – the names of the wheels in the model. This is the name of the model GameObject for the wheel set at 0,0,0 (not the front wheel parents, they are found automatically).

**Vehicle Settings** – the settings you wish to use for the vehicle being created. For your first vehicle, just click the circle and select the Car settings.

### Optional Components

**Audio Component** (new in v1.5) - this component controls the vehicle audio, for engine stop/ start, engine running, drifting, collision (default and custom, allowing for multiple different collision sound effects)

**Audio Data** (new in v1.5) - assign here any audio data you already have made and want to use with this vehicle. For more details on Audio Data, see [this page](/vehicles/audio-and-audiodata).

**Example Effects** – if you wish to have smoke and/ or tire trails, enable this option and assign the prefabs. You can also select here how many wheels should get the trail.

**Drift Settings** (new in v1.5) - this asset is required for the various components that have events when the vehicle is drift, the audio drift SFX and the smoke/ drift tire marks.

**Collision Effects** (new in v1.5) - enable this to add the component for effects on collisions.

**Collision Effects Data** (v1.5) - assign any collision effects data here, you can have a default collision effect and muliple custom ones. Fore more details, see [this page](/vehicles/collisions-and-collisioneffectsdata).

**Example Input** – an example script that uses WSAD to move the vehicle will be added, optional – to add your own input component use the Custom Components list.

~~Custom Components~~ Removed in v1.5\
~~Any components that you have created yourself, that needed to be added to a vehicle, can be included in this list, they will be added to the vehicle too.~~

### Building

Clicking build now will create a vehicle in the scene with the correct hierarchy and should be playable straight away.

These steps are available on YouTube:\
<https://www.youtube.com/watch?v=9m1Am-BYoZo> (pre v1.5)


# Vehicle Settings

Vehicle settings store the data for a vehicle’s movement. These settings can be used on multiple vehicles at the same time, making it easy to tweak values. You can have 50 vehicles and 1 settings object, or 50 vehicles each with their own settings.

To create a new settings object, in the Project Window navigate to the folder you wish to store it in: *right mouse click -> Create -> e23 -> AVC -> Vehicle Settings*

The below image is from the Airboat example settings that come included with the asset. Most of the values are self-explanatory.

![Vehicle settings inspector window](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FcRbbFm2dENvqLwHfrdWu%2FVehicleSettings.png?alt=media\&token=32d077bb-d172-4123-85bd-3d5a62295275)

**Acceleration** – How fast to speed up the vehicle.

**Max Speed** – How fast the vehicle can drive (used for forward and reverse).

**Break Speed** – How fast to slow the vehicle down.

**Boost Speed –** How fast the vehicle will move when boosting

**Max Speed To start Reversing** – Breaking will slow the vehicle down (using break speed), once this value is reached the vehicle will stop breaking and start reversing.

**Steering** – Controls the turning angle of the vehicle, how tight the vehicle can turn. The lower the value, the larger the turning arch.

**Gravity** – A higher value will bring the vehicle down to the ground faster.

**Drift** – How easily the vehicle will slide around a corner, the lower the value the harder it is to drift.

**Vehicle Body Tilt** – How much the vehicle will tilt on the Z axis when turning.

**Forward Tilt** – The multiplier applied to work out how much the vehicle should tilt on the X axis, when moving forward. The higher the value, the smaller the tilt.

**Strafe Tilt** – The multiplier applied to work out how much the vehicle should tilt on the Z axis, when moving sideways. The higher the value, the smaller the tilt. This will not be used by the majority of vehicles, it's for hover vehicles.

**Anular Drag** – This sets the angular drag on your vehicles Rigidbody. Leave at -1 to use the angular drag set on the Rigidbody.

### Switches

**Auto Start Engine** (new in v1.5) - Have the engine already running when the game starts, or require the engine to be started by the player.

**Looser Ground Follow** (new in v1.5) - A toggle to switch between a tight ground follow when jumping off ramps, with this flag enabled the vehicle will reach higher off the ground (how AVC has been since release), disabling it keeps the vehicle closer to the ground, see [this page](/vehicles/looser-ground-follow) for details.

**Stay Flat In Air** (new in v1.5) - Toggle whether the vehicle should stay flat, or rotate to point towards the ground as it falls off a cliff face.

**Turn in Air** – Allow the vehicle to rotate when not grounded.

**Turn When Stationary** – Allow the vehicle to rotate when not moving.

**Two Wheel Tilt** – Used for motorbikes, to give an extra tilt when turning corners.

**Stop Slope Slide** – Enabling this will stop the vehicle from sliding down a slope, when it is perpendicular to the slope.

**Slide Thresthold** – Set the angle that the vehicle will start sliding down a slope. 1 requires the vehicle to be at 90 degress to not slide, 0.1 requires the vehicle to be pointing almost directly down the slope to start moving.

**Ground Layer** – This is a LayerMask for you to set as your ground layers, which the vehicle will use to know if it is grounded.


# Audio and AudioData

The VehicleAudio component controls all the audio for the vehicle. You can select to add this component when creating your vehicles with the prefab builder, it will get added to the same GameObject as the VehicleBehaviour.

Here you can add/ remove the AudioData you want your vehicles to use. You do not need to add any AudioSource components, they are created at run time.

Make sure you also assign a DriftSettings asset.

![VehicleAudio component](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FKXXgVbCoCKyJUVQIwtgY%2FVehicleAudio.png?alt=media\&token=7d60fc6a-c6d7-419b-a4e6-f51e2d45001a)

### Audio Data

Audio Data are saved as ScriptableObjects and are required for adding sounds to your vehicles. The audio is done this way to allow for reuse across multiple vehicles, which means you can quickly change sounds on multiple vehicles.

To create a new AudioData asset right mouse click in the project window -> Create -> e23 -> AVC  -> Audio Data

![AudioData inspector window](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2Fr5n9ws4N8abMSYVCLYGe%2FAudioData.png?alt=media\&token=02de5f84-1d06-4b4f-9969-ec9c30571945)

**Audio ID** (optional) - Enter a name for this audio, if you are using a 'Custom' AudioType, otherwise it can be left blank.

**Audio Type** - Select the type of audio this asset is for. The options are self explanatory EngineStart, EngineRunning, EngineOff, Collision, Break, Drift, Custom.

**Audio Clip** - Assign the audio clip this asset will be using.

**Play On Awake** - Sets this same flag on the created AudioSource.

**Loop** - Sets this same flag on the created AudioSource.

**Audio Mixer Group** - Sets this same flag on the created AudioSource.

**Layer Mask** - Currently not used by AVC, but available for you if you write a custom class that requires it.

### AudioSource Settings

These are all the settings found on the Unity AudioSource. Setting them here will apply them to the audio source in game. For more information on what they do, see the [Unity docs](https://docs.unity3d.com/Manual/class-AudioSource.html).

### Audio Tag

This component is used by AVC for custom sounds on collisions, add this to any object you wish to have a custom SFX on, enter the required AudioID, and as long as the AudioData for it is added to the vehicles, then this sound will play on collision.

![AudioTag component](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FpI2XcZOvWz7t0aA6jrjV%2FAudioTag.png?alt=media\&token=4d05a76c-f910-4ddc-b69f-1249f11f7692)


# Drift Settings

In versions prior to v1.5 the drift settings were only required by 1 component, with the release of v1.5 there are now 2 components that require the drift settings, so it was decided to have these settings as an asset.&#x20;

There is a default DriftSettings asset included with AVC, which has the settings set to the same values as the original component.

![DriftSettings asset inspector window](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FicnxIeacvbwRndpMInY1%2FDriftSettings.png?alt=media\&token=608feb7b-8ee4-437d-b680-2dd60e491eea)

The folowing components require this asset assigned:\
\- VehicleAudio, used for the drift SFX\
\- VehicleEffects, used for the smoke and skid effects


# Collisions and CollisionEffectsData

### Collision Manager

The <mark style="color:green;">CollisionManager</mark> is a component which sits on the same <mark style="color:green;">GameObject</mark> as the <mark style="color:green;">Rigidbody</mark> and captures the collision events, then invokes its own events for the AVC components that require them.

![CollisionManager component](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2F4x6BuZza09oo5qQ10UrZ%2FCollisionManager.png?alt=media\&token=58202567-bd51-4b28-bd2c-4a31cd119eb1)

### Events

These events are public and free for you to use anyway you should need. Just get a reference to the CollisionManager and then subscribe to the following.

<mark style="color:purple;">Action\<Collision> OnVehicleCollisionEnter</mark>

<mark style="color:purple;">Action\<Collision> OnVehicleCollisionExit</mark>

<mark style="color:purple;">Action\<Collision> OnVehicleCollisionStay</mark>

### CollisionEffectsData

The CollisionEffectsData holds the information required for collisions.

![CollisionEffectsData inspector window](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FBRIs7PW9rG1s0jPlWspY%2FCollisionEffectsData.png?alt=media\&token=fa3463fd-f112-4c28-b15f-069e8245e6e9)

**Effects ID** (optional) - Enter a name for this effect, if you are using a 'Custom' CollisionType, otherwise it can be left blank.

**Collision Type** - Select the type of collision this asset is for. There currently only options Default and Custom.

**Effect Prefab** - Assign the prefab that should be spawned when this collision occurs. Two example prefabs are included with AVC.

**Required Speed** - Set this to the minimum speed you want your vehicle to be moving for this effect to spawn.

### Collision Tag

This component is used by AVC for spawning custom effects on collisions, add this to any object you wish to have a custom particle system spawn when hit, enter the required CollisionID, and as long as the CollisionEffectsData for it is added to the vehicles, then this effect will spawn on collision.

![CollisionTag component](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FBUqF6GK6zKfGKjTBRGLW%2FCollisionTag.png?alt=media\&token=3f179080-f618-4164-a6ed-aa0ed2b5f882)


# Looser Ground Follow

This is a flag in the VehicleBehaviourSettings, which sets how closely the vehicle should follow the ground. Set to true (by default) keeps the AVC the same as it has been since launch, allowing for the vehicle to leave the ground as it leaves a ramp at high speed. Setting this option to false will keep the vehicle much closer to the ground, depending on the angle of the decline.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FSBtppYgRLFqNwkAiWqPF%2FLooserGroundFollow.png?alt=media\&token=e623749f-76dc-4a0c-a306-e726db8ad329)


# Properties

The main class in Arcade Vehicle Controller is VehicleBehaviour.cs, which must be attached to any vehicle for it to move.

| Property                                                                                                                                                 | Type             | Description                                                                                                                                                                  |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Acceleration                                                                                                                                             | float            | <p>How fast your vehicle speeds up, Range value 1 – 12 (higher value means faster). </p><p>Set via the vehicle settings.</p>                                                 |
| MaxSpeed                                                                                                                                                 | float            | <p>                                                                                                                                                                          |
| How fast your vehicle can move, Range value 1 – 100 (high value means faster). </p><p>Set via the vehicle settings.</p>                                  |                  |                                                                                                                                                                              |
| BreakSpeed                                                                                                                                               | float            | <p>                                                                                                                                                                          |
| How fast your vehicle brakes, Range value 1 – 15 (higher value means faster). </p><p>Set via the vehicle settings.</p>                                   |                  |                                                                                                                                                                              |
| BoostSpeed                                                                                                                                               | float            | <p>How fast your vehicle moves when boosting, Range value 5 – 200. </p><p>Set via the vehicle settings.</p>                                                                  |
| MaxSpeedToStartReverse                                                                                                                                   | float            | <p>The speed your vehicle will be travelling when it stops braking and reverses instead, Range 1 – 500 (higher value means sooner). </p><p>Set via the vehicle settings.</p> |
| Steering                                                                                                                                                 | float            | <p>                                                                                                                                                                          |
| Controls how tight of a turning circle your vehicle has, Range 20 – 160 (higher value means tighter cornering). </p><p>Set via the vehicle settings.</p> |                  |                                                                                                                                                                              |
| Gravity                                                                                                                                                  | float            | <p>A multiplier used to determine how quickly the vehicle falls to the ground, Range 0 – 20 (higher value means heavier vehicle). </p><p>Set via the vehicle settings.</p>   |
| Drift                                                                                                                                                    | float            | <p>Determines how slidey the vehicle is when turning, Range 0 – 1 (1 means very slidey). </p><p>Set via the vehicle settings.</p>                                            |
| VehicleBodyTilt                                                                                                                                          | float            | <p>Sets how much the vehicle tilts when turning, Range 0 – 3 (higher value gives a bigger tilt) </p><p>Set via the vehicle settings.</p>                                     |
| ForwardTilt                                                                                                                                              | float            | <p>Sets the multiplier for how much vehicle tilts when accelerating/ reversing, Range 1 – 10 (higher value means smaller tilt). </p><p>Set via the vehicle settings.</p>     |
| TurnInAir                                                                                                                                                | bool             | <p>Allow the vehicle to turn in the air. </p><p>Set via the vehicle settings.</p>                                                                                            |
| TwoWheelTilt                                                                                                                                             | bool             | <p>                                                                                                                                                                          |
| Gives the vehicle an extra tilt when turning, this is for vehicles with 2 wheels. </p><p>Set via the vehicle settings.</p>                               |                  |                                                                                                                                                                              |
| NearGround                                                                                                                                               | bool             | Returns if the vehicle is close to the ground.                                                                                                                               |
| OnGround                                                                                                                                                 | bool             | Returns if the vehicle is grounded.                                                                                                                                          |
| GroundMask                                                                                                                                               | LayerMask        | Returns the layers that the vehicle can move on.                                                                                                                             |
| DefaultMaxSpeed                                                                                                                                          | float            | Returns the MaxSpeed from the Vehicle settings, allowing you to manipulate the MaxSpeed and return to the default value.                                                     |
| DefaultSteering                                                                                                                                          | float            | Returns Steering from the Vehicle settings.                                                                                                                                  |
| IsBoosting                                                                                                                                               | bool             | <p>Returns if the vehicle is currently boosting</p><p><br>(Added in v1.11.0)</p>                                                                                             |
| GetVehicleVelocitySqrMagnitude                                                                                                                           | float            | Returns the velocity square magnitude of the vehicle as a float, used to work out when to emit smoke.                                                                        |
| GetVehicleVelocity                                                                                                                                       | Vector3          | Returns the velocity of the vehicle as Vecto3, used to work out when to emit smoke.                                                                                          |
| VehicleWheelCount                                                                                                                                        | enum Vehicletype | <p>Changes how many wheels the vehicle has. </p><p>4 wheels. </p><p>2 wheels. </p><p>No wheels.</p>                                                                          |
| VehicleModel                                                                                                                                             | Transform        | Parent transform of the vehicle model.                                                                                                                                       |
| PhysicsSphere                                                                                                                                            | Transform        | Transform for the GameObject named ‘SphereRigidBody’.                                                                                                                        |
| VehicleBody                                                                                                                                              | Transform        | Transform for the ‘body’ GameObject, used for tilting.                                                                                                                       |
| FrontLeftWheel                                                                                                                                           | Transform        | Transform for the main wheel. This is used as the front left of a vehicle with 4 wheels, and the front of a 2 wheeled vehicle.                                               |
| FrontRightWheel                                                                                                                                          | Transform        | Transform for the secondary wheel. This is used as the front right of a vehicle with 4 wheels, and the rear of a 2 wheeled vehicle.                                          |
| BackLeftWheel                                                                                                                                            | Transform        | Back wheel.                                                                                                                                                                  |
| BackRightWheel                                                                                                                                           | Transform        | Back wheel.                                                                                                                                                                  |
| VehicleSettings                                                                                                                                          | VehicleSettings  | Link to the vehicle settings ScriptableObject the vehicle is using for the data.                                                                                             |


# Public Methods

| Method                                     | Description                                                                                                                                                                           |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SetVehicleSettings()                       | Updates the vehicle settings from the VehicleSettings ScriptableObject. Called in Awake() and from the update button located on the component in the inspector.                       |
| ControlAcceleration()                      | Makes the vehicle move forward, use this to call forward movement from your input class.                                                                                              |
| ControlBrake()                             | Makes the vehicle brake, or reverse, use this to call backwards movement from your input class.                                                                                       |
| ControlTurning(int)                        | <p>Controls the turning of the vehicle, and takes in an int to determine the direction.<br> -1 for left<br> 1 for right</p>                                                           |
| SetPosition(Vector3, Quaternion)           | Used to reposition and rotate the vehicle, best used for respawning. Pass in a Vector3 for the new position and a Quaternion for the rotation.                                        |
| MovementPenalty(float)                     | Used to change the MaxSpeed of the vehicle. Example use: slowing down on grass.                                                                                                       |
| SteeringPenalty(float)                     | Used to change the Steering speed of the vehicle. Example use: making it harder to turn on grass.                                                                                     |
| Jump(float, ForceMode = ForceMode.Impulse) | <p>Make the vehicle jump, pass in a force big enough to get it off the ground at the height you want. ForceMode is optional, uses Impulse by default.</p><p></p><p>Added in v1.16</p> |
| Boost()                                    | Used to set the vehicle boosting, changes isBoosting to true.                                                                                                                         |
| OneShotBoost(float)                        | Performs a boost over a set amount of time (in seconds).                                                                                                                              |
| StopBoost()                                | Changes isBoosting to false returning the vehicle to MaxSpeed.                                                                                                                        |


# Multiple Wheel Spin

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2FrBqphDjo0W1WR4h0AfAR%2FMultipleWheelSpin.png?alt=media\&token=c4a79bd7-2522-4e92-8ff5-e49fe7ca1357)

The <mark style="color:green;">ExtraWheelsSpin</mark> component allows you to have more than four wheels spinning on your vehicle.&#x20;

Add the <mark style="color:green;">ExtraWheelsSpin</mark> component, this can be on any <mark style="color:green;">GameObject</mark>, but is recommended to be on the same <mark style="color:green;">GameObject</mark> as the <mark style="color:green;">VehicleBehaviour</mark>. Assign the <mark style="color:green;">VehicleBehaviour</mark> to the exposed field, if left empty the class does a *<mark style="color:purple;">GetComponent\<T></mark>* in *<mark style="color:purple;">Awake()</mark>*.

Assign any additional wheels, that require spinning, to the list. Make sure to not assign the parent transform of the wheel. See the above image, additionally you can examine the Truck prefab included with AVC.


# Multiple Wheel Turn

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MAvcCremCCxL7EEPDdj%2Fuploads%2F4D6XMTX6RRdNoRn4BbaY%2FExtraWheelTurn.png?alt=media\&token=b7d3347f-ee86-46dd-b37a-b7f5a82a2abb)

The <mark style="color:green;">ExtraWheelsTurn</mark> component allows you to have additional wheels turn, when the vehicle is turning left/ right.&#x20;

Add the <mark style="color:green;">ExtraWheelsTurn</mark> component, this can be on any <mark style="color:green;">GameObject</mark>, but is recommended to be on the same <mark style="color:green;">GameObject</mark> as the <mark style="color:green;">VehicleBehaviour</mark>. Assign the <mark style="color:green;">VehicleBehaviour</mark> to the exposed field, if left empty the class does a *<mark style="color:purple;">GetComponent\<T></mark>* in *<mark style="color:purple;">Awake()</mark>*.

Assign any additional wheels, that require turning, to the list. Make sure to assign the parent transform of the wheel. See the above image, additionally you can examine the Truck prefab included with AVC.


# Troubleshooting

## How do I stop vehicles jumping between two colliders?

Vehicles can sometimes bounce on the join of two ground colliders with the default physics settings. Change the ‘Default Contact Offset’ in 'Project Setings' -> 'Physics'. It runs great for me with the value set to 0.0001.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MAvvyJ8NJF-xSwku8zH%2F-MAvy4GCUCwTVbZwMXMo%2Fimage.png?alt=media\&token=eb8742e8-7469-48bd-93fe-a326ef6ff1af)

## Why is my vehicle moving very slowly or not at all?

As of v1.5 AVC requires a LayerMask to be set for the ground, by default this should be set to “Default”. On your vehicle settings check what the ‘Ground Mask’ is set as and correct this to what your ground layer is set as.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MAvvyJ8NJF-xSwku8zH%2F-MAvykmWpoG9c40Kd_mP%2Fimage.png?alt=media\&token=46b659af-fef5-4afd-b6d9-ca403994c823)

## Why do I get a NullReferenceException in the console?

There can sometimes be a null reference appear in the console, linked to the Vehicle Builder Window, this appears to be a Unity bug and can be ignored. (<https://forum.unity.com/threads/assetdatabase-saveassets-is-giving-a-nullreferenceexception.778691/>). Closing the Vehicle Builder Window when you’re done with it should stop the error appearing.

```
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.GameObjectInspector.ClearPreviewCache () (at /Users/builduser/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:211)
UnityEditor.GameObjectInspector.OnDisable () (at /Users/builduser/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:199)
UnityEditor.AssetDatabase:SaveAssets()
e23.VehicleController.Editor.VehiclePrefabBuilderEditorWindow:SavePrefabSetup() (at Assets/e23/SimpleCarController/Scripts/Editor/VehiclePrefabBuilderEditorWindow.cs:475)
e23.VehicleController.Editor.VehiclePrefabBuilderEditorWindow:OnDisable() (at Assets/e23/SimpleCarController/Scripts/Editor/VehiclePrefabBuilderEditorWindow.cs:63)

```

## Why don't my wheels rotate correctly?

This can happen when the pivot of the wheel model isn’t set in the way the AVC is expecting it. Create an empty GameObject, position it in the same place as the wheel, and then place the model as a child of the GameObject – renaming the new parent as your search term.

If you are correcting an already built vehicle, make sure to assign the new parent object to the correct wheel transform on the VehicleBehaviour component.\
\
Use the [Wheel Fixer](/help/wheel-fixer) tool to solve this issue.

## How do I fix the 'nameof operator' console error?

If the below error is showing in the console, you need to change the projects ‘Scripting Runtime Version’ to ‘.NET 4.x Equivalent’. This can be found in Player Settings -> Other Settings -> Configuration.

```
Feature `nameof operator' cannot be used because it is not part of the C# 4.0 language specification
```

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MAvvyJ8NJF-xSwku8zH%2F-MAw-3YQ38Xy3O8aLoIq%2Fimage.png?alt=media\&token=d874fd5c-cb10-4fda-b991-81e6b323daff)


# Wheel Fixer

For your wheels to rotate and turn correctly, AVC expects that your models pivot points are located in the center of the geometry. This, however, is not always the case and isn't always possible to fix in the 3D.&#x20;

Since v1.9, AVC comes with a tool to automatically fix the local positions of the parent GameObjects so that everything rotates correctly.

![Incorrectly placed pivot point for wheel model](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MBymNmvAvJqMr0W9QfJ%2F-MByoGdrj00wxhgCKhjB%2Fimage.png?alt=media\&token=731efef9-4e96-4b65-8a09-ff320a1aa731)

In the image above, you can see the pivot point for the wheel is incorrectly located at 0,0,0 of the entire model. This pivot point is what the wheel will rotate around when the vehicle is moving, to make the wheels spin, resulting in an incorrect rotation, displayed in the clip below.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MBymNmvAvJqMr0W9QfJ%2F-MBypnliioJwMu7dkzKO%2Fezgif.com-optimize.gif?alt=media\&token=046b201a-cd86-4a41-b03a-b4edd1a2c5cf)

### Using the Wheel Fixer window

Before getting started with the Wheel Fixer window, make sure to follow the '[Preparing Your Vehicle](/vehicles/preparing-your-vehicle)' setup, otherwise the fixer won't work.\
\
1- Open the window by going to Tools -> e23 -> Wheel Fixer.\
2- Select the parent GameObjects for the wheels that need fixing, and drag them on the 'Wheel Parents' array in the fixer window.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MBymNmvAvJqMr0W9QfJ%2F-MBys8b1DNdOxaYcRIKJ%2Fezgif.com-video-to-gif.gif?alt=media\&token=189b915f-bfea-431f-a351-f0666cc4ba9a)

3- Click the 'Fix Wheel(s)' button.\
4- The console will show logs when complete (almost instantly), then check your wheels rotations.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MBymNmvAvJqMr0W9QfJ%2F-MByt0tqXzN3iIj7Nmh4%2Fezgif.com-video-to-gif.gif?alt=media\&token=3b760739-9177-4881-a384-58c7ef251d63)


# Updating to v1.12

Explanation and instructions on how to fix a big change when updating to v1.12

## Vehicle Body Tilt

v1.12 of AVC fixes an issue with the 'Vehicle Body Tilt' (set via the 'VehicleSettings'), unfortunately this value wasn't actually being used. The below two images demonstrate the body tilt in AVC prior to v1.12.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MKUUtrTwr1KEaIahHM-%2F-MKUqe37oXJ8ctkJLrwF%2F01.png?alt=media\&token=bcf6ae4e-8269-416a-9950-9857ff9e725b)

This looks good from a distance, but up close you can see the obvious problems with the tilt. When building your vehicle with the Vehicle Prefab Builder, the builder automatically found the 'Body' GameObject and assigned this to the correct field on VehicleBehaviour.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MKUUtrTwr1KEaIahHM-%2F-MKUdM1kme876QP5McZ-%2F03.png?alt=media\&token=db48a800-7d08-4571-a99b-d30b80539665)

## The Problem

With v1.12, the GameObject that is assigned to the body field on VehicleBehaviour has changed, so when updating to v1.12 from a previous version of AVC, you may start seeing your vehicle(s) act like the following - looks awesome, but completely wrong!

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MKUUtrTwr1KEaIahHM-%2F-MKUq7Dr9rIb5nwkLzk1%2F04.png?alt=media\&token=a440fdb6-dcd7-4abd-b1cf-c76f87b2daed)

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MKUUtrTwr1KEaIahHM-%2F-MKUq9S1Fs4M-En1lRz0%2F05.png?alt=media\&token=ebe7450b-f555-4ccd-894d-ac18d59d31d4)

## The Fix

Fortunately, the fix is easy and quick for you to do - so all your already made vehicle prefabs can still be used, with a quick update to the assigned body on VehicleBehaviour.

The body tilt may not make a difference for in the update, or you may like the results (perhaps with a tweak of the Vehicle Body Tilt value on your vehicles settings), is so, carry on as you were! However, if you are experiencing this over tilt, then - all you need to do is assign a GameObject higher up in the hierarchy. For the demo vehicles, it required using the model prefab parent.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MKUUtrTwr1KEaIahHM-%2F-MKUsxhCypWR7myfLV5R%2F06.png?alt=media\&token=8f772bcc-1d05-4388-83ca-d7b44914815a)

This results in a much nicer tilt when the vehicle turns, and the 'Vehicle Body Tilt' value (on the VehicleSettings object) now has an effect to how much your vehilce will tilt.

![](https://1552885336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAvcCremCCxL7EEPDdj%2F-MKUUtrTwr1KEaIahHM-%2F-MKUtm9oKpMWE8sjeclS%2F07.png?alt=media\&token=e446af24-60ce-4433-916a-3fb2bc6a0153)


# Release Notes

## v1.5.7

* Tidied up the demo scenes
* Removed legacy/ unused items

## v1.5.6

* Added new package for Unity 6 Preview
* Added Unity 6 Preview specific code, wrapped in code defines
* Upgraded demo scenes for Cinemachine v3

***

## v1.5.5

* Added new package for Unity v2022.3

## v1.5.4

### Fixed

* Improved ground detection so the size of the model shouldn't matter

### Updated

* Added SkidReverseSpeed to DriftSettings, allowing for custom setting of when skid marks and smokes are emitted when reversing

## v1.5.3

### Fixed

* Fixed layer setup launcher not appearing. It now displays on asset import again

### Updated

* Improved positioning of the box collider in the prefab builder
* Added tool tips to all Vehicle Settings options

## v1.5.2

## Fixed

* Wheels now rotate again when steering the vehicle

## v1.5.1

### Added

* Strafing now has it's own tilt value in the vehicle settings

### Updated

* Fixed minor typo in prefab builder help
* Removed Cinemachine namespace include that snuck into VehicleBehaviour

## v1.5

### Added

* Vehicle audio component added. This component is used for engine start, engine running, engine stop, drifting, collisions
* Collision effects. Easily added particle effects for collisions.
* Collision Manager component added. This component deals with the collision events and calls its own events to pass them to the new audio and effects components (OnVehicleCollisionEnter, OnVehicleCollisionExit, OnVehicleCollisionStay)
* Drift settings are now a ScriptableObject. These are required for Vehicle Effects (drift tire marks/ smoke) and Vehicle Audio
* Engine can now be toggled on/off, with an option to auto start (new events added for these - OnStartEngine, OnEngineStarted)
* Tight/ loose ground follow option

### Updated

* Ground alignment has been greatly improved, following the contours of the ground much better than before
* Vehicle will now rotate towards the ground as it falls through the air (optional, this can be toggled in the VehicleSettings)
* VehicleSettings have been updated to add all the new features
* Prefab builder tided up and new features added. UseBoxCollider is now forced to true, older setup is being phased out

### Fixed

* Now using OnGround raycast to accelerate, instead of NearGround as this allowed the vehicle to change direction and move in the air causing weird movement. This also lead to the tight/ loose ground follow option being added
* Setting the position when a vehicle is using the box collider setup no longer ends up in the model spinning around

## v1.22

### Added

* Added package for Unity v2021.3 (LTS)

### Fixed

* Fixed vehicle never reaching MaxSpeed *NOTE*: With this update all your current speends may need lowering by 6.

### Update

* Code tidy and improvements

## v1.21

### Added

* Added the ability to turn the vehicle engine on/ off. Auto start is on by default, this setting can be toggled on the VehicleBehaviourSettings

### Update

* Improved ground alignment
* Moved all method calls in VehicleBehaviour and ExampleAIMovement out of Update() and into FixedUpdate()

## v1.20

### Added

* Added class to rotate wheels, allowing for more than 4 wheels: [Link](/addons/wheenspin)
* Added class to turn wheels, allowing for more than just the front two wheels to turn: [Link](/addons/wheelturn)

### Update

* Additional prefab builder setting saved that previously wasn't

### Fixed

* Fixed bug when adding trails after builder hasn't found a wheel

## v1.19

### Added

* Added CurrentSpeed property to return the current speed as a float&#x20;

### Update

* Improved slope sliding&#x20;

### Fixed

* Fixed vehicles using the box collider setup not sliding down slopes

## v1.18

### Update

* Added new vehicle setting 'Slide Threshold'. This allows you to tweak when a vehicle will start sliding down a slope

## v1.17

### Update

* Front wheels turn when stationary
* Renamed property 'PhysicsSphere' to 'VehicleRigidbody'
* Moved all create items into AVC sub-menu

**NOTE:** This update may cause the VehicleBehaviour to lose the Rigidbody assignment. If your vehicles don't move after updating, please re-assign the vehicles Rigidbody to the VehicleBehaviour component field 'VehicleRigidbody'

## v1.16

### Added

* Added a new public jump method to VehicleBehaviour, use Jump(float) - where the float is the force to jump by
* Added a new class 'VehicleBehaviourLinker' to make it easier to get the VehicleBehariou - see the SphereRigidbody GameObject on the example vehicle prefabs for its use

## v1.15

### Fixes

* Fixed the ground check, the size of the vehicle should now no longer matter

## v1.14

### Added

* Added package for Unity v2020.3 (LTS)
* Added touch screen controls example

### Updates

* Removed left over trigger colliders from prefabs
* No longer updating packages for 2020.1

### Fixes

* Fixed position of smoke on AI motorbike

## v1.13

### Updates

* Threewheel option now available - with example.
* Turning and strafing methods now accept floats instead of ints.
* Tidied up the code a bit.
* Hidden some more console warnings.

## v1.12

### Updates

* Separated forward tilt and turn roll, allowing for rolling even with a forward tilt of 0.
* Prefab builder now assigns model parent for body tilting.
* Scene is now set dirty on creation of a new vhicle via Prefab Builder.
* Undo will undo the vehicle creation.

### Fixes

* Corrected use of VehicleBodyTilt settings, this value now has an affect on the vehicle tilt.
* Fixed bug with trails when swapping from 4 to 2 wheels.

## v1.11.3

### Updates

* Updated Car prefab to correct rear wheel rotation.
* Code tidy

## v1.11.2

### Added

* Added tooltip to ForwardTilt in vehicle settings.

### Fixes

* Fixed an error when setting the forward tilt to 0.

## v1.11.0

### Added

* IsBoosting property added.
* Added angular drag to vehicle settings.
* Added new option to prefab builder, to build vehicle with box collider instead of sphere.

### Updates

* Forward tilt min decreased to 0.

## v1.10.0

### Added

* Added pacakge for Unity v2020.1.

### Updates

* Improved example AI.
* Removed extra sphere colliders that weren't doing anything from AI.

## v1.9

### Added

* Added package for Unity v2019.4.
* Added tool to fix wheel rotation when model pivot points arent centered correctly.
* Docs moved online.

### Fixes

* Fixed SetPosition, vehicle no longer carries on moving
* Corrected turning whilst reversing.

## v1.8

### Updates

* Fixed all console warnings.

## v1.7

### Updates

* Improved ground check, allowing for the sphere collider to be resized.
* Improved vehicle movement to make the camera follow much smoother.
* Stopped setup launcher opening after any package has imported, it only opens when AVC is imported.

### Removed

* Removed unused param from VehicleEffects method.

## v1.6

### Added

* Added setup window to make layer setup unmissable.

### Removed

* Removed unused var from editor window.

## v1.5

### Added

* Added the option to disallow vehicles turning when stationary.
* Added a LayerMask to the grounded check.

### Fixes

* Fixed cinemachine target follow stutter. This happened because the target was being updated in FixedUpdate() and LateUpdate(), now everything is in FixedUpdate().

## v1.4

### Added

* Added new Vehicle Setting to stop vehicles sliding down slopes sideways. This can be toggled on/off.

## v1.3

### Added

* Addeed boost.

### Updates

* Improved movement code.

## v1.2

### Added

* Added support for Unity 2019.3.
* Added strafing.
* Added new vehicle example (Helicopter) to show how to use strafing.
* Added two new methods for speed penalties when changing surface.

### Updates

* Raycast for grounded is now set dynamically, allowing for the vehicle model to be higher off the ground.

### Removed

* Removed left over collider from all prefabs and it is no longer added when creating a new one.

## v1.1

### Fixed

* Fixed all demo scenes and prefabs.

### Removed

* Removed wrongly included items.
* Removed post processing dependency, so it doesn't conflict with/mess up your projects post processing setup.

## v1.0

First release


# Asset Store

Arcade Vehicle Controller (AVC) can be acquired from the Unity Asset Store: <https://assetstore.unity.com/packages/tools/physics/avc-arcade-vehicle-controller-157860?aid=1101lGt5><br>

AVC is availble to demo before you purchase.

Download Windows version: <https://enigma23.itch.io/arcade-vehicle-controller>

WebGL version: <https://enigma23.itch.io/arcade-vehicle-controller-webgl>

Android version: <https://play.google.com/store/apps/details?id=com.enigma23.avc>


# Social Links

Enigma 23 games website: [http://enigma23games.com](http://enigma23games.com/)

Facebook: <https://www.facebook.com/en9g131/>

Unity forum support post: <https://forum.unity.com/threads/avc-arcade-vehicle-controller.781895/>


# Github Gists

Additional code to help extend AVC and use it with Unity features, these Gists are presented as examples and have no official support - please use them as guidance and not for production.

## AVC and Unity's new Input System

<https://gist.github.com/Carwashh/03cb20c8699f0e95e231045766f1261e>

## AVC and Unity's Navmesh

<https://gist.github.com/Carwashh/cd2e5ebbda251a36305bc73c835bde07>

## Example touchscreen input

<https://gist.github.com/Carwashh/aa138e2487d7324407b7ff603996577f>


