I’m getting this error when i’m trying to make a script for a lift.
Lift.attributes.add('upTarget', {
type: 'entity'
});
Lift.attributes.add('downTarget', {
type: 'entity'
});
// initialize code called once per entity
Lift.prototype.initialize = function() {
};
Lift.prototype.initialize = function(otherEntity) {
entity.rigidbody.translate(lerp(0,upTarget));
};
// swap method called for script hot-reloading
// inherit your script state here
// Lift.prototype.swap = function(old) { };
// to learn more about script anatomy, please read:
// http://developer.playcanvas.com/en/user-manual/scripting/
will
June 4, 2019, 2:45am
#2
It should be this.entity
, not entity
.
Also, there’s no function called translate
on the rigidbody
component. Instead, there is teleport .
In this case, you have a lift (elevator). This is probably best done as a kinematic body. You can move kinematic bodies around with the regular translate function on the entity itself (you only need teleport for dynamic and static bodies). So:
this.entity.translate(x, y, z);
I changed those things about the script, but now it gives me this: lerp is not defined
Do I still need to use that or will it slowly move up?
will
June 4, 2019, 5:49pm
#5
There is no such function as lerp
in JavaScript. PlayCanvas provides an implementation for pc.Vec3 though:
https://developer.playcanvas.com/en/api/pc.Vec3.html#lerp
To lerp an entity from one point to another, you would have to accumulate a timer and use that as the third parameter to the lerp function.
1 Like