Unity3D场景中鼠标对物体的按面拖拽法及介质的制作方法

文档序号:19407832发布日期:2019-12-13 23:38阅读:来源:国知局

技术特征:

1.一种unity3d场景中鼠标对物体的按面拖拽法,其特征在于:包括以下步骤:

步骤1、通过unity3d引擎创建一个平面游戏对象;

步骤2、将所述平面游戏对象放置于场景所在的平面与相机之间;

步骤3、在开始拖拽场景中被拖曳的物体时,通过unity内置的api获取鼠标所在的屏幕坐标,并在3维世界坐标中得到从相机发出经过所述屏幕坐标的射线;

步骤4、将该射线的延长线与平面游戏对象的交点确定为目标位置,并根据平面游戏对象的位置、相机所在的相机坐标和鼠标所在的屏幕坐标计算出该目标位置;

步骤5、获得目标位置后,将被拖曳的物体的位置变换成该目标位置,经过这个操作后被拖曳的物体的位置就在目标位置上,即该被拖曳的物体就处于平面游戏对象上,且在鼠标指针下,从而实现被拖曳的物体的拖拽过程,只要平面游戏对象不与场景中除被拖曳的物体以外的其他物体相交,则被拖曳的物体就不与其他物体重合。

2.根据权利要求1所述的一种unity3d场景中鼠标对物体的按面拖拽法,其特征在于:所述步骤4中平面游戏对象的位置、相机所在的相机坐标和鼠标所在的屏幕坐标计算出该目标位置,具体计算方法为:

将所述平面游戏对象命名为p,p具有两个关键属性:p.distance和p.normal,其中,p.distance表示与坐标原点的距离,p.normal表示朝向;设p的中心坐标为f,由p.normal和f确定一单位向量fg,设相机所在的相机坐标为c、鼠标所在的屏幕坐标为d,由c和d构成一单位向量cd,并由c和d确定出一条端点为c的射线r,r具有两个关键属性:r.origin及r.direction,其中,r.origin表示射线位置,即c的坐标,r.direction表示射线方向;

1)获取从相机到p的中心的距离向量cf:向量cf=p.distance*p.normal–r.origin;

2)将向量cf与向量fg进行点乘,获得向量cf在向量fg方向上的的长度dist,即线段ce的距离值;

3)将向量cd与向量fg进行点乘,获得向量cd与向量fg的比例值pn;

4)将线段ce的距离值除以比例值pn,获得c沿着射线方向r.direction到p的长度值x,即线段ch的距离值;

5)单位向量cd乘以x得到向量ch,再加上r.origin,获得最终拖拽的目标位置h,如果射线r与p平行,则射线r与p之间没有焦点,不能获得目标位置h。

3.根据权利要求1所述的一种unity3d场景中鼠标对物体的按面拖拽法,其特征在于:所述步骤2之后还包括:所述平面游戏对象为可视化界面,通过可视化界面观察确定平面游戏对象是否与场景中的物体相交,若相交,则通过编辑器进行编辑,从而调整平面游戏对象的位置,使得平面游戏对象与场景中的物体不相交;若不相交,则不调整平面游戏对象的位置。

4.根据权利要求1所述的一种unity3d场景中鼠标对物体的按面拖拽法,其特征在于:所述相机为透视相机,所述平面游戏对象与相机的视面平行时,平面游戏对象上被拖曳的物体在拖曳时与拖曳前的尺寸一致;所述平面游戏对象与相机的视面不平行时,平面游戏对象上被拖曳的物体位于靠近相机的视面区域,则拖曳时比拖曳前的尺寸大,平面游戏对象上被拖曳的物体位于远离相机的视面区域,则拖曳时比拖曳前的尺寸小。

5.根据权利要求1所述的一种unity3d场景中鼠标对物体的按面拖拽法,其特征在于:所述相机为正交相机,所述平面游戏对象与相机的视面平行或不平行时,平面游戏对象上被拖曳的物体在拖曳时与拖曳前的尺寸一致。

6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:

步骤1、通过unity3d引擎创建一个平面游戏对象;

步骤2、将所述平面游戏对象放置于场景所在的平面与相机之间;

步骤3、在开始拖拽场景中被拖曳的物体时,通过unity内置的api获取鼠标所在的屏幕坐标,并在3维世界坐标中得到从相机发出经过所述屏幕坐标的射线;

步骤4、将该射线的延长线与平面游戏对象的交点确定为目标位置,并根据平面游戏对象的位置、相机所在的相机坐标和鼠标所在的屏幕坐标计算出该目标位置;

步骤5、获得目标位置后,将被拖曳的物体的位置变换成该目标位置,经过这个操作后被拖曳的物体的位置就在目标位置上,即该被拖曳的物体就处于平面游戏对象上,且在鼠标指针下,从而实现被拖曳的物体的拖拽过程,只要平面游戏对象不与场景中除被拖曳的物体以外的其他物体相交,则被拖曳的物体就不与其他物体重合。

7.根据权利要求6所述的一种计算机可读存储介质,其特征在于:所述步骤4中平面游戏对象的位置、相机所在的相机坐标和鼠标所在的屏幕坐标计算出该目标位置,具体计算方法为:

将所述平面游戏对象命名为p,p具有两个关键属性:p.distance和p.normal,其中,p.distance表示与坐标原点的距离,p.normal表示朝向;设p的中心坐标为f,由p.normal和f确定一单位向量fg,设相机所在的相机坐标为c、鼠标所在的屏幕坐标为d,由c和d构成一单位向量cd,并由c和d确定出一条端点为c的射线r,r具有两个关键属性:r.origin及r.direction,其中,r.origin表示射线位置,即c的坐标,r.direction表示射线方向;

1)获取从相机到p的中心的距离向量cf:向量cf=p.distance*p.normal–r.origin;

2)将向量cf与向量fg进行点乘,获得向量cf在向量fg方向上的的长度dist,即线段ce的距离值;

3)将向量cd与向量fg进行点乘,获得向量cd与向量fg的比例值pn;

4)将线段ce的距离值除以比例值pn,获得c沿着射线方向r.direction到p的长度值x,即线段ch的距离值;

5)单位向量cd乘以x得到向量ch,再加上r.origin,获得最终拖拽的目标位置h,如果射线r与p平行,则射线r与p之间没有焦点,不能获得目标位置h。

8.根据权利要求6所述的一种计算机可读存储介质,其特征在于:所述步骤2之后还包括:所述平面游戏对象为可视化界面,通过可视化界面观察确定平面游戏对象是否与场景中的物体相交,若相交,则通过编辑器进行编辑,从而调整平面游戏对象的位置,使得平面游戏对象与场景中的物体不相交;若不相交,则不调整平面游戏对象的位置。

9.根据权利要求6所述的一种计算机可读存储介质,其特征在于:所述相机为透视相机,所述平面游戏对象与相机的视面平行时,平面游戏对象上被拖曳的物体在拖曳时与拖曳前的尺寸一致;所述平面游戏对象与相机的视面不平行时,平面游戏对象上被拖曳的物体位于靠近相机的视面区域,则拖曳时比拖曳前的尺寸大,平面游戏对象上被拖曳的物体位于远离相机的视面区域,则拖曳时比拖曳前的尺寸小。

10.根据权利要求6所述的一种计算机可读存储介质,其特征在于:所述相机为正交相机,所述平面游戏对象与相机的视面平行或不平行时,平面游戏对象上被拖曳的物体在拖曳时与拖曳前的尺寸一致。


技术总结
本发明提供一种Unity3D场景中鼠标对物体的按面拖拽法,包括:1、创建一个平面游戏对象;2、将平面游戏对象放置于场景所在的平面与相机之间;3、在开始拖拽时,通过Unity内置的API获取鼠标所在的屏幕坐标,并在3维世界坐标中得到从相机发出经过所述屏幕坐标的射线;4、将射线的延长线与平面游戏对象的交点确定为目标位置,并计算目标位置;5、将被拖曳物体的位置变换成目标位置,则被拖曳物体就处于平面游戏对象上且在鼠标指针下,从而实现拖拽过程,只要平面游戏对象不与场景中其他物体相交,则被拖曳物体就不与其他物体重合。本发明还提供一种计算机可读存储介质,拖曳后避免被拖曳物体与场景中其他物体产生重合现象。

技术研发人员:唐光宇;卢学明;范金良;俞永浩;汤非凡
受保护的技术使用者:福州智永信息科技有限公司
技术研发日:2019.08.02
技术公布日:2019.12.13
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1