一种基于Unity3D引擎的滚动效果实现方法及终端技术

技术编号:18444365 阅读:21 留言:0更新日期:2018-07-14 10:09
本发明专利技术涉及数据处理领域,尤其涉及一种基于Unity3D引擎的滚动效果实现方法及终端。本发明专利技术通过预设工作区、工作区遮罩和主视口;设置所述工作区与所述工作区遮罩的大小相同;从所述工作区中选取一固定点,得到锚点;当滚动所述工作区时,获取所述锚点的实时坐标;根据所述锚点的实时坐标更新所述主视口的位置。实现在Unity3D引擎中实现滚动效果。

Implementation method and terminal of rolling effect based on Unity3D engine

The invention relates to the field of data processing, in particular to a rolling effect implementation method and terminal based on Unity3D engine. The present invention has the same size as the preset work area, the work area mask and the main viewport; a fixed point is selected from the working area to get the anchorage; the real-time coordinates of the anchorage are obtained when the working area is rolled, and the owner is updated according to the real-time coordinates of the anchorage. The position of the viewport. Realize the effect of rolling in the Unity3D engine.

【技术实现步骤摘要】
一种基于Unity3D引擎的滚动效果实现方法及终端
本专利技术涉及数据处理领域,尤其涉及一种基于Unity3D引擎的滚动效果实现方法及终端。
技术介绍
Unity3D作为一个游戏引擎,在提供游戏服务支持方面很出色,但是在应用类程序开发中存在许多缺陷,比如要实现类似微软PPT中PPT视口的滚动,元素显示在视口之外等功能,在Unity中没有提供直接的功能,要实现起来也较为困难。并且Unity为了方便游戏开发,主视口会随着窗口大小的变化,自动改变摄像机的视锥,这在实现上述功能中会造成一定的障碍。并且在网络上没有发现类似功能的插件或源码设计。
技术实现思路
本专利技术所要解决的技术问题是:如何在Unity3D引擎中实现滚动效果。为了解决上述技术问题,本专利技术采用的技术方案为:本专利技术提供一种基于Unity3D引擎的滚动效果实现方法,包括:预设工作区、工作区遮罩和主视口;设置所述工作区与所述工作区遮罩的大小相同;从所述工作区中选取一固定点,得到锚点;当滚动所述工作区时,获取所述锚点的实时坐标;根据所述锚点的实时坐标更新所述主视口的位置。本专利技术还提供一种基于Unity3D引擎的滚动效果实现终端,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:预设工作区、工作区遮罩和主视口;设置所述工作区与所述工作区遮罩的大小相同;从所述工作区中选取一固定点,得到锚点;当滚动所述工作区时,获取所述锚点的实时坐标;根据所述锚点的实时坐标更新所述主视口的位置。本专利技术的有益效果在于:Unity3D引擎中,ScrollView控件作为一个可以滚动的容器,能够容纳一些基础的控件作为子元素实现整体的统一控制,包括图片、按钮、视频等一些UI基础元素,但是主视口是Unity引擎的特殊组件,不属于基础UI元素,也不能作为子物体被容纳在ScrollView控件内。由于Unity3D引擎对主视口的限制,使得主视口不能直接作为ScrollView控件的内容物体被ScrollView控件所控制,因此,本专利技术通过在工作区设置锚点,使得工作区在滚动的过程中,可根据锚点与主视口的相对位置动态调整主视口的位置,从而在视觉上实现主视口随着工作区滚动而滚动。附图说明图1为本专利技术提供的一种基于Unity3D引擎的滚动效果实现方法的具体实施方式的流程框图;图2为本专利技术提供的一种基于Unity3D引擎的滚动效果实现终端的具体实施方式的结构框图;图3为工作区、工作区遮罩和主视口之间的位置关系示意图;标号说明:1、处理器;2、存储器。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。请参照图1以及图2,如图1所示,本专利技术提供一种基于Unity3D引擎的滚动效果实现方法,包括:预设工作区、工作区遮罩和主视口;设置所述工作区与所述工作区遮罩的大小相同;从所述工作区中选取一固定点,得到锚点;当滚动所述工作区时,获取所述锚点的实时坐标;根据所述锚点的实时坐标更新所述主视口的位置。进一步地,根据所述锚点的实时坐标更新所述主视口的位置,具体为:根据所述锚点的实时坐标计算在保持所述主视口与所述锚点的相对位置不变的情况下,所述主视口超出所述工作遮罩的区域,得到裁剪区域;若所述裁剪区域为所述主视口的全部区域,则在预设的区域隐藏所述主视口;否则,根据所述裁剪区域调整与所述主视口对应的摄像机的投影矩阵。由上述描述可知,由于在Unity3D引擎中主视口有其特殊性,不能随便设置其位置和大小,主视口的位置和大小限制在窗口的最左边到窗口的最右边,如果超出这个范围就会发生错误。因此,本专利技术为了实现PPT制作软件中为了编辑幻灯片区域之外且距离幻灯片较远的元素对象时,幻灯片被移动至可视窗口之外的区域的效果,当理论上的裁剪区域为主视口的全部区域时,将主视口隐藏在窗口范围内的一区域,以达到主视口不可见的效果。进一步地,还包括:当所述裁剪区域为所述主视口的部分区域时,获取与所述主视口对应的摄像机的参数,得到摄像机参数;根据所述摄像机参数获取第一三维对象在屏幕的第一位置信息;获取ScrollView控件中与所述第一位置信息对应的第二位置信息;根据所述第二位置信息更新与所述第一三维对象对应的第一二维对象在ScrollView控件中的位置。由上述描述可知,当所述裁剪区域为所述主视口的部分区域时,当前欲编辑的处于主视口区域之外的对象与主视口的位置较近,且主视口根据实际需求移动了位置,主视口与当前欲编辑的对象之间的实际相对距离不变,因此,可直接根据主视口对应的摄像机参数计算出当前欲编辑对象投影至屏幕中的第一位置信息。由于Unity3D中摄像机所投影的对象为三维对象,而ScrollView控件中显示的为三维对象对应的二维对象,因此,还需将三维对象的第一位置信息转换为对应的二维对象在ScollView控件坐标系中的第二位置信息。进一步地,还包括:当所述裁剪区域为所述主视口的全部区域时,获取所述锚点和第二三维对象的相对位置信息;根据所述锚点的实时坐标和所述相对位置信息计算得到所述第二三维对象的实际位置信息;获取ScrollView控件中与所述实际位置信息对应的第三位置信息;根据所述第三位置信息更新与所述第二三维对象对应的第二二维对象在ScrollView控件中的位置。由上述描述可知,由于本专利技术当理论上的裁剪区域为主视口的全部区域时,将主视口隐藏在窗口范围内的一区域,并未将主视口根据实际需求移至窗口外,导致了此时主视口和当前欲编辑的处于所述主视口区域之外的对象与主视口之间的相对位置发生变化,因此,此时不能使用主视口摄像机参数和该对象之间的相对位置关系计算出该对象当前的实际位置。本专利技术预设的锚点的位置是固定不变的,因此,在这种情况下,本专利技术根据锚点的位置信息计算得到该对象的实际位置。进一步地,还包括:获取所述锚点的坐标,得到初始坐标;扩展或裁剪所述工作区;设置所述锚点的坐标为所述初始坐标。由上述描述可知,实现工作区动态扩展或裁剪仍能保持锚点在工作区中的固定位置不变。如图2所示,本专利技术还提供一种基于Unity3D引擎的滚动效果实现终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:预设工作区、工作区遮罩和主视口;设置所述工作区与所述工作区遮罩的大小相同;从所述工作区中选取一固定点,得到锚点;当滚动所述工作区时,获取所述锚点的实时坐标;根据所述锚点的实时坐标更新所述主视口的位置。进一步地,根据所述锚点的实时坐标更新所述主视口的位置,具体为:根据所述锚点的实时坐标计算在保持所述主视口与所述锚点的相对位置不变的情况下,所述主视口超出所述工作遮罩的区域,得到裁剪区域;若所述裁剪区域为所述主视口的全部区域,则在预设的区域隐藏所述主视口;否则,根据所述裁剪区域调整与所述主视口对应的摄像机的投影矩阵。进一步地,还包括:当所述裁剪区域为所述主视口的部分区域时,获取与所述主视口对应的摄像机的参数,得到摄像机参数;根据所述摄像机参数获取第一三维对象在屏幕的第一位置信息;获取ScrollView控件中与所述第一位置信息对应的第二位置信息;根据所述第二位置信息更新与所述第一三维对象对应的第一二维对象在Scrol本文档来自技高网
...

【技术保护点】
1.一种基于Unity3D引擎的滚动效果实现方法,其特征在于,包括:预设工作区、工作区遮罩和主视口;设置所述工作区与所述工作区遮罩的大小相同;从所述工作区中选取一固定点,得到锚点;当滚动所述工作区时,获取所述锚点的实时坐标;根据所述锚点的实时坐标更新所述主视口的位置。

【技术特征摘要】
1.一种基于Unity3D引擎的滚动效果实现方法,其特征在于,包括:预设工作区、工作区遮罩和主视口;设置所述工作区与所述工作区遮罩的大小相同;从所述工作区中选取一固定点,得到锚点;当滚动所述工作区时,获取所述锚点的实时坐标;根据所述锚点的实时坐标更新所述主视口的位置。2.根据权利要求1所述的基于Unity3D引擎的滚动效果实现方法,其特征在于,根据所述锚点的实时坐标更新所述主视口的位置,具体为:根据所述锚点的实时坐标计算在保持所述主视口与所述锚点的相对位置不变的情况下,所述主视口超出所述工作遮罩的区域,得到裁剪区域;若所述裁剪区域为所述主视口的全部区域,则在预设的区域隐藏所述主视口;否则,根据所述裁剪区域调整与所述主视口对应的摄像机的投影矩阵。3.根据权利要求2所述的基于Unity3D引擎的滚动效果实现方法,其特征在于,还包括:当所述裁剪区域为所述主视口的部分区域时,获取与所述主视口对应的摄像机的参数,得到摄像机参数;根据所述摄像机参数获取第一三维对象在屏幕的第一位置信息;获取ScrollView控件中与所述第一位置信息对应的第二位置信息;根据所述第二位置信息更新与所述第一三维对象对应的第一二维对象在ScrollView控件中的位置。4.根据权利要求2所述的基于Unity3D引擎的滚动效果实现方法,其特征在于,还包括:当所述裁剪区域为所述主视口的全部区域时,获取所述锚点和第二三维对象的相对位置信息;根据所述锚点的实时坐标和所述相对位置信息计算得到所述第二三维对象的实际位置信息;获取ScrollView控件中与所述实际位置信息对应的第三位置信息;根据所述第三位置信息更新与所述第二三维对象对应的第二二维对象在ScrollView控件中的位置。5.根据权利要求1所述的基于Unity3D引擎的滚动效果实现方法,其特征在于,还包括:获取所述锚点的坐标,得到初始坐标;扩展或裁剪所述工作区;设置所述锚点的坐标为所述初始坐标。6.一种基于Unity3D引擎的滚动效果实现终端...

【专利技术属性】
技术研发人员:刘德建刘汶斌方振华郭玉湖
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1