TransportSurface
Last updated
Last updated
For modeling conveyor systems or any kind of freely moving goods (what is called MU in realvirtual.io) on a surface you need to use a Transport Surface.
A Transport Surface is always connected to a Drive which is controlling the speed and position. The Transport Surface needs to be placed on the object which is also including the box collider for the surface itself.
Here is a tutorial about defining your first conveyor:
To add a Transport Surface you can use the realvirtual.io menu or Add Component on the Gameobject itself. The Transport Surface will be added automatically to the Drive which is next (up in the hierarchy) to the Transport Surface. In some cases, you might need to change it or to add multiple Transport Surfaces to one Drive . You can do this on the Drive itself:
Sometimes Unity Physics is very difficult and the solution to master it is a little bit weird. As described in Physics normal movements of a linear or rotational axis are not done based IsKinematic Rigidbodies. The transformation is done based on the Unity hierarchy and the position of Unity’s Transform because this is usually much more stable.
This causes one problem. If it is for example necessary to combine a linear or rotational movement with the Transport Surface itself this will cause problems. Unity will not move the Transport Surface Collider as expected.
To prevent this the option ParentDrive is available on the Transport Surface:
This option will automatically decouple the Transport Surface upon simulation start and will make a function as expected possible. During simulation, the Transportsurface will be without a parent in the top level of the hierarchy. You can see an example in the Demo model TurningAndLiftingTransportSurface which can be found under realvirtual.io > Scenes:
When you build up more complex kinematic structures, make sure to always keep the gameobject with the component transport surface parallel to the kinematic structure of the other drive belonging to the surface. An further expample model is MovingTransportSurface which can also be found under realvirtual.io > Scenes. The picture below shows how to define such a structure. The parent drive of the transport surface is the one which is the lowest in the kinematic structure.
You can choose if the constraints of objects which enter the transportsurface have to be changed or not. Setting the boolean ChangeConstraintsOnEnter or ChangeConstraintsOnExit to true will give the possibility to that.
When you change the constraints they will not be set back automatically to the former settings when the object leaves the transport surface. There you have to set ChangeConstraintsOnExit true and define the values. Choosing "None" all contraints will be removed from the object.
Two textures are available for the TransportSurface. If "Advanced Surface" is selected, a GameObject named Belt is added as a child of the TransportSurface in the hierarchy, with the ConveyorBelt component attached. This component consists of four elements, each corresponding to a section of the TransportSurface. A mesh is generated for each element, ensuring that textures are correctly applied even on curved sections. The size of the Belt is based on the dimensions of the TransportSurface's BoxCollider. The image below illustrates the difference between the textures.
© 2025 realvirtual https://realvirtual.io - All rights reserved. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, including printing, saving, photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the publisher.