1.一种基于三维引擎生成指定菜单的方法,其特征在于,包括以下步骤:S1、获取外部输入的包含整个菜单信息的菜单数据;
S2、基于所述菜单数据中每层父级菜单下的子级菜单数量的最大值,生成对应数量的菜单预制体;最高父级菜单通过读取数据直接生成对应的菜单预制体并显示;除最高父级菜单之外,其他层级菜单所对应生成的菜单预制体将被放置在三维引擎的对象池中等待调用;
S3、获取搜索关键词,调用以下方法从所述菜单数据中快速匹配定位目标菜单,并将目标菜单及其以上层级的全部父级菜单进行输出显示;
S31、将获取的关键词与预存储的菜单数据作对比,筛选出与关键词匹配的相关数据,将其整理存储为数据展示列表;具体实现方法为:通过C#语言Linq库的Where操作符从所述菜单数据中查询并筛选出目标数据,将其整理并记录到三维引擎自带的List数据结构中;
在所述S31的Linq库的方法中,采用.NET Framework所提供的具有查找和查询功能的集合类型,在数据中创建索引;
S32、通过调用对象池中对应的单条菜单预制体,将目标菜单以及与其同级的其他子级菜单进行一一对应的显示,再将目标菜单的父级及其以上层级直至最高层级的菜单层级通过调用对应的层级预制体进行显示;每个被调用的菜单预制体中的显示部分都加入了对应菜单的数据信息,用于区分同层级中不同的菜单数据,未展开的子级菜单不进行预制体配置,也不生成菜单;
搜索完毕清除关键字或者逐级关闭父级菜单时,所调用的菜单预制体将重新回收至对象池中,以供下次搜索时调用。
2.如权利要求1所述的一种基于三维引擎生成指定菜单的方法,其特征在于,所述S1的具体步骤包括:S11、解析并存储外部输入的包含整个菜单信息的菜单数据,所述菜单数据包括以预定层级分布的父级菜单及包含在不同父级菜单下的子级菜单;
S12、计算不同父级菜单下的同级子类菜单的数量,取每层父级菜单下的子级菜单数量的最大值作为菜单预制体的生成数量,以确保单次显示的层级预制体数量能够满足每个菜单层级需要显示的最大数量。
3.一种用以实施权利要求1‑2中任一项所述方法的基于三维引擎生成指定菜单的系统,其特征在于,包括:数据获取模块,用以获取外部输入的包含整个菜单信息的菜单数据;
预制体生成模块,用以根据菜单数据中每层父级菜单下的子级菜单数量的最大值,生成对应数量的菜单预制体;
方法执行模块,用以调用方法从菜单数据中快速匹配定位目标菜单,并将目标菜单及其以上层级的全部父级菜单进行输出显示;
其中,所述的方法执行模块,进一步包括:
数据列表单元,用以将获取的关键词与预存储的菜单数据作对比,筛选出与关键字匹配的相关数据,将其整理存储为数据展示列表;
菜单显示单元,用以通过调用对象池中对应的单条菜单预制体,将目标菜单以及与其同级的其他子级菜单进行一一对应的显示,再将目标菜单的父级及其以上层级直至最高层级的菜单层级通过调用对应的层级预制体进行显示。
4.一种基于三维引擎生成指定菜单的装置,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序时实现如权利要求1至2任意一项所述的基于三维引擎生成指定菜单的方法的步骤。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至2任意一项所述的基于三维引擎生成指定菜单的方法的步骤。