0
Under review

Drive with transport surface not working.

Bo Adam 3 weeks ago in realvirtual.io Starter and Professional updated 1 hour ago 13

Hello,

I have a rotating and lifting transport surface. It takes the carrier when it rotates and lifts, but the carrier doesn't move when I jog forward or backward. 

The same carrier works on a different transport unit that is built in the same way, so I know it is not the carrier that is the problem. 
The drive chains move with the rotating platform as desired.

I've added pictues to show the turning lift, I hope you can help me with the moving of the carrier problem!

Answer

Answer

Hi Bo, no we are missing all the colliders and meshes if you just send the prefab without dependencies.

Best would be that you zip your whole example project (before please delete the Library folder). After this you could upload here:

https://realvirtual.io/send

Answered

This is due to some Unity limitations - combining physical movements (transport surface) and kinematic movements (axis) is a problem. Please check example scene Assets/game4automation/Scenes/TurningAndLiftingTransportSurface.unity

Basically the TransportSurface should not be a child of the kinematic movements - it needs to be separated but the parent drive needs to be referenced in the TransportSurface

As you can see the transportsurfaces are a child of the main gameobject, not of the Lift/Rotator, so that shouldn't be a problem right?

Under review

ah yes right - did you compared with the demo model - did you see any differences. If you don't find the issue you might need to send us the model and I can check.

Answer

Hi Bo, no we are missing all the colliders and meshes if you just send the prefab without dependencies.

Best would be that you zip your whole example project (before please delete the Library folder). After this you could upload here:

https://realvirtual.io/send

When collision happens between Surface and MaterialFlowObject, set MaterialFlowObject.transform.parent = surface.transform. When object leave the collider, set transform.parent back.

For example: 



private void OnCollisionEnter(Collision other)
{
if (!_isDynamic) return;
if (other.gameObject.TryGetComponent(out Entity entity))
{
entity.transform.parent = transform;
}
}

private void OnCollisionExit(Collision other)
{
if (!_isDynamic) return;
if (other.gameObject.TryGetComponent(out Entity entity))
{
if (entity.transform.parent == transform) entity.transform.parent = _pool.Object.transform;
}
}

I am not sure if this proposal is in general the way to go.

@Preliy: Can you please exlain a little bit more or send us an example project.

Hello,


I Am now uploading the file, you need p210010_Factory as the scene.

Hi Bo, just downloaded it but I am doing very hard to see where I can check your problems. Could you prepare a very simple separated scene which shows directly your problem when starting it in Play mode? 

I have the new scene, do i just need to upload the scene or the entire project again?

Hello Bo,

sorry, but within your scene the prefab data is missing. (e.g. meshes etc.). Please put your scene and the prefabs incl their data in one folder and export it as an unity package. Thanks.


sorry again, I now have uploaded a package of just the test scene, Created it via the game4automation menu so hope it works.