Hello all,
I am trying to make an entity go to a certain position after it hits a collision.
I would greatly appreciate any help
What is the problem exactly? Can you share more information about the setup and script?
I have a cube going on the x-axis toward another box, I am trying to make a script so that when the cube hits the box it will go to a certain position using this.entity.setLocalPosition(0,0,0)
Probably you need to use this.entity.setPosition(0, 0, 0);
Ok, but do you know how to get the collision to work?
Below the manual page about collision.
https://developer.playcanvas.com/en/tutorials/collision-and-triggers/
Oh, I just noticed something on the tutorial! Thanks for sharing that link! I think I am good
I used code from the manual and it still doesn’t work, I used the Trigger code:
var Trigger = pc.createScript('trigger');
// initialize code called once per entity
Trigger.prototype.initialize = function() {
this.entity.collision.on('triggerenter', this.onTriggerEnter, this);
};
Trigger.prototype.onTriggerEnter = function(entity) {
entity.rigidbody.linearVelocity = pc.Vec3.ZERO;
entity.rigidbody.angularVelocity = pc.Vec3.ZERO;
// Reset back to roughly the position the entity started in.
var position = entity.getPosition();
this.entity.setPosition(-584.032, 10, 0);
};
This script works only if the entity with the script has no rigidbody component. Otherwise it’s not a trigger.
Also be aware that if an entity has a dynamic rigidbody, you can’t use setPosition()
. You need to use rigidbody.teleport()
instead.
Okay I will try what you sugested
Does the collision script need to have a collision component?
Yes.