[LayaAir 2.0]PixelLineSprite3D 绘制线段问题
1. 场景中存在一个目标OBJ, 首先获得目标的坐标
所以,想请教下,处理过程中出现了什么问题,怎么解决。
this.objPoint3D= OBJ.transform.position2. 从摄像机(透视)构造一条射线(参考官方3D鼠标点击案例),来得到一个鼠标点击坐标
this.originRay = new Laya.Ray(this.sceneCamera.transform.position, new Laya.Vector3(0, 0, 0))3. 在PixelLineSprite3D上绘制OBJ与鼠标点击位置之间的线段,没有问题。
let pointVec2 = new Laya.Vector2( )
pointVec2.x = Laya.MouseManager.instance.mouseX;
pointVec2.y = Laya.MouseManager.instance.mouseY;
this.sceneCamera.viewportPointToRay(pointVec2, this.originRay)
// 摄像机发出射线检测的碰撞体
let cameraHitResult = new Laya.HitResult( )
this.mainScene.physicsSimulation.rayCast(this.originRay, cameraHitResult)
if (cameraHitResult.succeeded){4. 但是,我的需求是想要鼠标点击位置与OBJ同一高度(y值),这样,构成OBJ与鼠标点之间的另一条射线来做碰撞检测。所以,我作了如下调整,然后再绘制线段
let toPoint3D = cameraHitResult.point
this.lineSprite3D = scene.addChild(new Laya.PixelLineSprite3D(99999)) as Laya.PixelLineSprite3D
this.lineSprite3D.addLine(this.objPoint3D, toPoint3D, Laya.Color.RED, Laya.Color.RED)
}
if (cameraHitResult.succeeded){然后,绘制出来的线段,就并不是从OBJ到鼠标点击位置之间的线段了。
let toPoint3D = cameraHitResult.point
toPoint3D.y = Pos3D.y
this.lineSprite3D = scene.addChild(new Laya.PixelLineSprite3D(99999)) as Laya.PixelLineSprite3D
this.lineSprite3D.addLine(this.objPoint3D, toPoint3D, Laya.Color.RED, Laya.Color.RED)
}
所以,想请教下,处理过程中出现了什么问题,怎么解决。
没有找到相关结果
已邀请:
要回复问题请先登录
0 个回复