ammoRayStart.setValue Undefined


#1

I’ve pretty much copy pasted the Raycast tutorial code into my project but i’m getting an error on one of the source files.

Uncaught TypeError: Cannot read property ‘setValue’ of undefined
at RigidBodyComponentSystem.raycastFirst (playcanvas-stable.dbg.js:29141)

var MyRaycast = pc.createScript(‘myRaycast’);

// initialize code called once per entity
MyRaycast.prototype.initialize = function() {
// Find the first entity in the hierarchy with the name ‘Camera’
this.cameraEntity = this.app.root.findByName(‘AR Camera’);

// Setup the different positions to move to
this.firstPosition = new pc.Vec3(-1, 1.25, 6.5);
this.secondPosition = new pc.Vec3(1, 1.25, 6.5);

// Add a mousedown event handler
this.app.mouse.on(pc.EVENT_MOUSEDOWN, this.mouseDown, this);

// Add touch event only if touch is available
if (this.app.touch) {
    this.app.touch.on(pc.EVENT_TOUCHSTART, this.touchStart, this);
}

};

MyRaycast.prototype.mouseDown = function (e) {
this.doRaycast(e);
};

MyRaycast.prototype.touchStart = function (e) {
// Only perform the raycast if there is one finger on the screen
if (e.touches.length == 1) {
this.doRaycast(e.touches[0]);
}
e.event.preventDefault();
};

MyRaycast.prototype.doRaycast = function (screenPosition) {
// The vec3 to raycast from
var from = this.cameraEntity.getPosition ();
// The vec3 to raycast to
var to = this.cameraEntity.camera.screenToWorld(screenPosition.x, screenPosition.y, this.cameraEntity.camera.farClip);

// Raycast between the two points
var result = this.app.systems.rigidbody.raycastFirst(from, to);

// If there was a hit, store the entity
if (result) {
//Do Stuff.
}    

};

Can anyone help?


#2

Do you have public link to the project or the rest of the callstack?


#3

I’ve built out a project with the same issue here;

https://playcanvas.com/project/597242/overview/demo

I’m reviewing on Chrome.

Thanks


#4

Your physics in the project settings is not enabled

image

This also means that you haven’t added any physics objects in the scene to raycast against otherwise this would have automatically been set.