V2020.1.56.3_ Belt System



Overview

The BeltSystem allows you generate a LoftMesh and move objects over its surface where the BeltSystem's velocity is determined by the rotation of a https://unit040.atlassian.net/wiki/spaces/PUD/pages/281673729

 


Where to find

Add a BeltSystem to your scene by navigating to Standard Components > Belt System

It will automatically be attached to a selected GameObject. Otherwise it will create a new GameObject to attach to.


Feature Layout

 

Belt Settings

 

Wheel Joint

Use this field to select a WheelJoint in the scene that will be used as the driver for the BeltSystem.

Velocity

This field shows the current velocity of the belt, which is depend on the changing rotation of the WheelJoint.

Acceleration

Use this field to set the acceleration of objects on the belt. This determines how fast objects will follow the velocity of the belt.

Buffered Circumference Points

Use this field to set the amount of points on the Circumference Spline that will be buffered. More points will result in a more accurate but heavier calculation.

Buffered Surface Points

Use this field to set the amount of points on the Surface Spline that will be buffered. More points will result in a more accurate but heavier calculation.

Loft Mesh Settings

Loft Mesh Settings

 

Circumference Spline

Use this field to select a (closed) Spline as the Loft Circumference Spline.

Surface Spline

Use this field to select a Spline as the Loft Surface Spline.

Circumference Max Length Deviation

Use this field to set the maximum distance between points on the Circumference Spline

Circumference Max Angle Deviation

Use this field to set the maximum angle between points on the Circumference Spline

Surface Max Angle Deviation

Use this field to set the maximum distance between points on the Surface Spline

Invert Surface Normals

Use this field to generate the triangle normals on the opposite sides.

Show as Rendered Mesh

Use this field to generate a Mesh Filter and a Mesh Renderer upon generating the Loft Mesh.

Generate Surface

Use this button to generate a surface from a Circumference Spline and a Surface Spline using all the above settings.

Clear Surface

Use this button to clear a previously generated surface.

Generate Loft Mesh

Use this button to generate a Loft Mesh from a previously generated surface

Gizmo Settings

 

Enable Velocity Gizmo

Use this field to toggle the use of the Velocity Gizmo.

Show Gizmo when not selected

Use this field to toggle whether the Gizmo should be visible when the component is not selected.

Velocity Gizmo Color

Use this field to set the color of the Velocity Gizmo

 


How to use

1. Generate a Loft Mesh

To generate a Loft Mesh, you first need to describe its surface. You do so by creating a Circumference and Surface Spline. (See also: Spline )

First create a Circumference Spline. This needs to be a closed spline around the edge of the belt.

Then, create a Surface Spline. This spline must be perpendicular to any point on the Circumference Spline.

Now click “Generate Surface”. This will create a list of Splines that form the entire surface of the LoftMesh. The LoftMesh itself has not been generated yet but this will give you a clear indication of how it will look.

If you are not satisfied with the generated surface, click “Clear Surface”. All generated Splines will now be deleted. Try changing the settings and regenerate the surface.

As soon as you are satisfied with the generated surface, click “Generate Loft Mesh”. This will actually generate the Loft Mesh and add it to a MeshCollider on the GameObject.

Important: Do not delete the generated surface splines after generating a Loft Mesh. These splines are used by the BeltSystem.

2. Assign a WeelJoint

The BeltSystem requires a WheelJoint to function. Rotating the WheelJoint will result in a velocity change of the belt. This way you can have, for example, a Motor component drive the BeltSystem.

3. Set the Friction Type

Make sure that project settings have Friction Type set to “Two Directional Friction Type”. Other Friction Types are currently not supported.

Note: Friction Type can be found in the Project Settings:
Edit → Project Settings → Physics → Friction Type