[]如何点击屏幕任何区域让模型运动到此处

看API有将3D坐标转换为2D坐标,并且官方有给出示例,鼠标点击貌似现在是通过射线检测鼠标是否有场景中某个模型碰撞来确定位置,如果我需要点击屏幕中的空白处来移动模型如何实现呢?直接将Laya.stage.mouseX传递给模型的position测试不对哦,有没有什么方法可以将屏幕坐标转换为模型的坐标呢?其实最终是为了实现拖动效果。
已邀请:

sfsmmc

赞同来自: devilsome

听你的描述,怎么觉得你想做的3D模型是在yz平面上移动的,要是在yz平面移动,可以建一个yz的3D平面。还是看需求,你的需求描述清楚了就好说了,按自己的理解说一下;
1.点击屏幕中的空白处来移动模型
表述不清晰。3D模型移动是3维空间的,点击屏幕是2D空间。你所说的2D移动在3D空间是怎样的表现,取决于你在3D空间对模型行走区域的限制(不然它可以在xy平面移动,也可以在yz平面移动或其他任意平面),换句话说就是有一个限制地形,控制了模型的移动范围。这就是楼上所说的“需要一个'看不到'的平面”,目的是来限制你角色的行走区域。是必须使用射线检测碰撞的。
 
2.官方的平面模型Laya.PlaneMesh(6,6,10,10)解释:(其实你也不必用这个,用BoxMesh也是可以的。)
function PlaneMesh(long,width,stacks,slices){}
根据上面的构造函数可以看出,前两个属性表示长宽,后两个是对模型网格的切分控制,在官方示例中修改
stacks,slices参数,然后鼠标点击按钮,切换到网格模式,自己感受下。

微信截图_20170908094127.png

 
3.我感觉你的需求可能是一个伪需求,可能你自己也不知道自己做的是什么,有没有必要这么做。如果可以,你可以截个图看看。
 
说的就这么多了,有错望指正。

devilsome

赞同来自:

空白地方也需要一个“看不到”的平面啊,不然怎么在一个二维空间(屏幕)上确定一个三维空间中的点的位置

devilsome

赞同来自:

如果都没3d经验,建议补充一些3D编程的基本知识。点线面常用算法,空间坐标变换,矩阵操作等等,这些是3D编程必备的。

要回复问题请先

商务合作
商务合作