Connecting to a signal that is executed, when the controller collides with a node¶
This example shows, how to connect to the signals that are triggered when a collision of the controller starts or stops. Controllers are only capable of detecting a collision, when either in hand mode or when using a Stylus as input device. The tip of the index finger and the tip of the stylus contain the collision sensor. Collisions are only detected when the colliding node supports collisions, which is currently limited to items in the VR menu, touch sensors and web engines.
vr/controllerCollision.py¶
1# © 2024 Autodesk, Inc. All rights reserved.
2
3def onCollisionStarted(node, device):
4 print("Collision started")
5 device.vibrate(250, 0)
6
7def onCollisionStopped(node, device):
8 print("Collision stopped")
9 device.vibrate(250, 0)
10
11rightController = vrDeviceService.getVRDevice("right-controller")
12leftController = vrDeviceService.getVRDevice("left-controller")
13
14rightController.signal().collisionStarted.connect(onCollisionStarted)
15rightController.signal().collisionStopped.connect(onCollisionStopped)
16
17leftController.signal().collisionStarted.connect(onCollisionStarted)
18leftController.signal().collisionStopped.connect(onCollisionStopped)