[LayaNative 2.0]摄像机的viewportPointToRay报错
LayaAir IDE 2.0.2beta 版本这个方法报错, 2.0的时候 都没有问题 更新就出现这个问题B43P1%XK0EMLAZO8{}XNAMK.pngB43P1%XK0EMLAZO8{}XNAMK
private pointRay:Laya.Vector2 = new Laya.Vector2();
private hitresult:Laya.HitResult = new Laya.HitResult();
private UpdateRay()
{
//射线初始化(必须初始化)
//获取鼠标在屏幕空间位置
this.pointRay.x = Laya.MouseManager.instance.mouseX;
this.pointRay.y = Laya.MouseManager.instance.mouseY;
//详设计产生射线方法,通过2D坐标获取与屏幕垂直的一条射线
console.log( PanelMgr.mainCamera);
PanelMgr.mainCamera.viewportPointToRay(this.pointRay, this.ray);
(this.owner as Laya.Scene3D).physicsSimulation.rayCast(this.ray,this.hitresult);
console.log(Laya.MouseManager.instance.mouseX + " -=----------" + Laya.MouseManager.instance.mouseY);
if (this.hitresult.succeeded)
{
console.log(this.hitresult.collider.owner.name + " -=----------" );
}
}
输出日志
---------------------------------------
laya.core.js:14871
Camera {_updateViewMatrix: false, enableRender: true, _viewMatrix: Matrix4x4, _projectionMatrix: Matrix4x4, _projectionViewMatrix: Matrix4x4, …}
ManageVisual01Space.ts:34
TypeError: Cannot set property 'x' of undefined
laya.d3.js:18879
at Viewport.__proto.unprojectFromMat (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:18879:8)
at Viewport.__proto.unprojectFromWVP (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:18904:8)
at Function.Picker.calculateCursorRay (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:4452:12)
at Camera.__proto.viewportPointToRay (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:42992:10)
at ManageVisual01Space.UpdateRay (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/js/bundle.js:714:39)
at ManageVisual01Space.onLateUpdate (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/js/bundle.js:705:14)
at TimerHandler.__proto.run (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.core.js:9083:45)
at Timer.__proto._update (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.core.js:8821:16)
private pointRay:Laya.Vector2 = new Laya.Vector2();
private hitresult:Laya.HitResult = new Laya.HitResult();
private UpdateRay()
{
//射线初始化(必须初始化)
//获取鼠标在屏幕空间位置
this.pointRay.x = Laya.MouseManager.instance.mouseX;
this.pointRay.y = Laya.MouseManager.instance.mouseY;
//详设计产生射线方法,通过2D坐标获取与屏幕垂直的一条射线
console.log( PanelMgr.mainCamera);
PanelMgr.mainCamera.viewportPointToRay(this.pointRay, this.ray);
(this.owner as Laya.Scene3D).physicsSimulation.rayCast(this.ray,this.hitresult);
console.log(Laya.MouseManager.instance.mouseX + " -=----------" + Laya.MouseManager.instance.mouseY);
if (this.hitresult.succeeded)
{
console.log(this.hitresult.collider.owner.name + " -=----------" );
}
}
输出日志
---------------------------------------
laya.core.js:14871
Camera {_updateViewMatrix: false, enableRender: true, _viewMatrix: Matrix4x4, _projectionMatrix: Matrix4x4, _projectionViewMatrix: Matrix4x4, …}
ManageVisual01Space.ts:34
TypeError: Cannot set property 'x' of undefined
laya.d3.js:18879
at Viewport.__proto.unprojectFromMat (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:18879:8)
at Viewport.__proto.unprojectFromWVP (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:18904:8)
at Function.Picker.calculateCursorRay (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:4452:12)
at Camera.__proto.viewportPointToRay (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.d3.js:42992:10)
at ManageVisual01Space.UpdateRay (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/js/bundle.js:714:39)
at ManageVisual01Space.onLateUpdate (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/js/bundle.js:705:14)
at TimerHandler.__proto.run (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.core.js:9083:45)
at Timer.__proto._update (file:///D:/ycz/worklaya/work/Pamm/pamm_laya/bin/libs/laya.core.js:8821:16)
没有找到相关结果
已邀请:
要回复问题请先登录
3 个回复
魔狼
赞同来自:
魔狼
赞同来自:
魔狼
赞同来自: