Unity中粒子特效创建方法、装置、电子设备及存储介质与流程

文档序号:17633393发布日期:2019-05-11 00:15阅读:290来源:国知局
Unity中粒子特效创建方法、装置、电子设备及存储介质与流程

本发明涉及游戏技术领域,尤其涉及一种unity中粒子特效创建方法、装置、电子设备及存储介质。



背景技术:

unity软件是由unitytechnologies公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

游戏中为增加画面细节,丰富游戏效果,通常会使用粒子特效,粒子特效可以模拟现实中的水、火、雾、气等效果,原理是将无数单个粒子组合使其呈现出固定形态,借由控制器、脚本来控制其整体或单个的运动,模拟出真实的效果。常见的粒子特效例如还可以为:游戏角色武器发射的子弹、子弹击中草丛产生的落叶、子弹打碎物体的特效等。

同时创建及播放多个粒子特效容易导致游戏卡顿,影响用户体验。以草丛受击播放的粒子特效(飘落叶)为例,当前技术是,当子弹击中草丛时,会先从缓存池中查找预先加载的该粒子特效实例并播放,找不到则创建并播放,虽有缓存池,但因子弹速度快,很容易同时击中多个草丛,就需要创建多个粒子特效实例并播放,因此可能产生卡顿,降低游戏流畅性。



技术实现要素:

有鉴于此,本发明实施例提供一种提高游戏流畅性的unity中粒子特效创建方法、装置、电子设备及存储介质。

第一方面,本发明实施例提供一种unity中粒子特效创建方法,包括:

获取待播放的粒子特效;

确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源;

若所述资源缓存池中有与所述待播放的粒子特效对应的粒子特效资源,则从所述资源缓存池中获取所述粒子特效资源并在所需位置播放。

结合第一方面,在第一方面的一种实施方式中,所述确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源,包括:

判断所述待播放的粒子特效的粒子特效资源是否有可共享标识,其中,所述可共享标识用于指示粒子特效资源能够共享播放;

若所述待播放的粒子特效的粒子特效资源有可共享标识,则确定所述资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源。

结合第一方面,在第一方面的另一种实施方式中,所述确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源,包括:

若所述待播放的粒子特效的粒子特效资源没有可共享标识,则确定资源缓存池中是否有所述待播放的粒子特效的实例;

若所述资源缓存池中有所述待播放的粒子特效的实例,则播放所述待播放的粒子特效的实例,若所述资源缓存池中没有所述待播放的粒子特效的实例,则创建所述待播放的粒子特效的实例并在所需位置播放。

结合第一方面,在第一方面的再一种实施方式中,所述若所述资源缓存池中没有所述待播放的粒子特效的实例,则创建所述待播放的粒子特效的实例并在所需位置播放,包括:

将创建的所述待播放的粒子特效的实例的粒子特效资源存储在所述资源缓存池中。

第二方面,本发明实施例提供一种unity中粒子特效创建装置,包括:

获取模块,用于获取待播放的粒子特效;

确定模块,用于确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源;

获取及播放模块,用于若所述资源缓存池中有与所述待播放的粒子特效对应的粒子特效资源,则从所述资源缓存池中获取所述粒子特效资源并在所需位置播放。

结合第二方面,在第二方面的一种实施方式中,所述确定模块,包括:

判断子模块,用于判断所述待播放的粒子特效的粒子特效资源是否有可共享标识,其中,所述可共享标识用于指示粒子特效资源能够共享播放;

第一确定子模块,用于若所述待播放的粒子特效的粒子特效资源有可共享标识,则确定所述资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源。

结合第二方面,在第二方面的另一种实施方式中,所述确定模块,包括:

第二确定子模块,用于若所述待播放的粒子特效的粒子特效资源没有可共享标识,则确定所述资源缓存池中是否有所述待播放的粒子特效的实例;

播放子模块,用于若所述资源缓存池中有所述待播放的粒子特效的实例,则播放所述待播放的粒子特效的实例,若所述资源缓存池中没有所述待播放的粒子特效的实例,则创建所述待播放的粒子特效的实例并在所需位置播放。

结合第二方面,在第二方面的再一种实施方式中,所述播放子模块,包括:

存储子单元,用于将创建的所述待播放的粒子特效的实例的粒子特效资源存储在所述资源缓存池中。

第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一所述的方法。

本发明实施例提供的unity中粒子特效创建方法、装置、电子设备及存储介质,首先获取待播放的粒子特效,然后确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源,最后若所述资源缓存池中有与所述待播放的粒子特效对应的粒子特效资源,则从所述资源缓存池中获取所述粒子特效资源并在所需位置播放。这样,通过确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源,从而对于相同的粒子特效,可共享使用对应的粒子特效资源,无需创建众多粒子特效实例,极大减少了粒子特效实例的创建数量,减少了cpu和内存的占用,极大提高游戏流畅性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的unity中粒子特效创建方法一个实施例的流程示意图;

图2为图1所示方法实施例中步骤102的流程示意图;

图3为本发明的unity中粒子特效创建装置一个实施例的结构示意图;

图4为图3所示装置实施例中确定模块12的结构示意图;

图5为本发明的电子设备一个实施例的结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

一方面,本发明实施例提供一种unity中粒子特效创建方法,如图1所示,本实施例的方法可以包括:

步骤101:获取待播放的粒子特效;

在游戏过程中,如果触发了带有粒子特效的事件(触发方式例如游戏角色释放技能、游戏角色武器发射子弹、子弹击中草丛产生落叶、子弹打碎物体等),则需要在相应位置(例如技能释放位置、子弹飞行路线上、草丛落叶位置、被打碎物体处)播放粒子特效,此时根据所述事件,即可获取待播放的粒子特效。

步骤102:确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源;

发明人在研究过程中发现,对于相同的粒子特效,可以共享粒子特效资源以播放相应的粒子特效,例如以子弹击中草丛产生的飘落叶粒子特效为例,现有技术中并未直接共享粒子特效资源,而是对于每个飘落叶粒子特效均需要克隆创建一个粒子特效实例,如果缓存池中预先加载了该粒子特效实例,则直接播放该粒子特效,如果没有预先加载该粒子特效实例,则需要创建并播放;虽然有缓存池,在一定程度上提高了运行速度,但由于缓存池的空间有限,该粒子特效不一定会被触发和播放等原因,并非所有粒子特效实例都会在缓存池中预先加载;另外,子弹速度较快,很容易同时击中多个草丛,且游戏角色可能会有多人,都发射了子弹且击中了草丛,此时就需要创建数量众多的粒子特效实例并播放,因此可能产生卡顿,降低游戏流畅性。

而本发明实施例中,通过确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源,从而对于相同的粒子特效,可在后续步骤共享使用对应的粒子特效资源,无需创建众多粒子特效实例,极大减少了粒子特效实例的创建数量,减少了cpu和内存的占用,极大提高游戏流畅性。其中,粒子特效资源是指粒子特效实例所使用的资源,包括粒子的材质、贴图、各种属性等。

作为一种可选的实施例,如图2所示,所述确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源(步骤102),可以包括:

步骤1021:判断所述待播放的粒子特效的粒子特效资源是否有可共享标识,其中,所述可共享标识用于指示粒子特效资源能够共享播放;

本步骤中,对于粒子特效资源能够共享播放的粒子特效,可预先在其粒子特效资源上增设可共享标识,该可共享标识可根据需要灵活约定,既可以是数值,也可以是字母,例如以数值o表示可共享播放,或是以字母y表示可共享播放;同时对于粒子特效资源不能共享播放的粒子特效,可以不增设标识或是增设不可共享标识,该不可共享标识例如以数值1表示不可共享播放,或是以字母n表示不可共享播放。

步骤1022:若所述待播放的粒子特效的粒子特效资源有可共享标识,则确定所述资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源。

这样,根据待播放的粒子特效的粒子特效资源是否有可共享标识,可以快速得知所述待播放的粒子特效对应的粒子特效资源是否可共享播放,当可共享播放时,再去资源缓存池中查找是否有对应的粒子特效资源,当不可共享播放时,则无需查找是否有对应的粒子特效资源,从而提高运行效率。

作为进一步可选的实施例,如图2所示,所述确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源(步骤102),还可以包括:

步骤1023:若所述待播放的粒子特效的粒子特效资源没有可共享标识,则确定所述资源缓存池中是否有所述待播放的粒子特效的实例;

步骤1024:若所述资源缓存池中有所述待播放的粒子特效的实例,则播放所述待播放的粒子特效的实例,若所述资源缓存池中没有所述待播放的粒子特效的实例,则创建所述待播放的粒子特效的实例并在所需位置播放。

这样,若所述待播放的粒子特效的粒子特效资源没有可共享标识,说明粒子特效资源不可共享播放,则可以按照现有技术,判断所述资源缓存池中是否预先加载有所述待播放的粒子特效的实例,若有,则播放该实例,若无,则创建并播放。

进一步的,所述若所述资源缓存池中没有所述待播放的粒子特效的实例,则创建所述待播放的粒子特效的实例并在所需位置播放,可以包括:

将创建的所述待播放的粒子特效的实例的粒子特效资源存储在所述资源缓存池中。

由于已创建了待播放的粒子特效的实例,缓存中产生了粒子特效资源,故可以将该粒子特效资源存储在资源缓存池中,以便于后续相同的粒子特效共享使用该粒子特效资源。

步骤103:若所述资源缓存池中有与所述待播放的粒子特效对应的粒子特效资源,则从所述资源缓存池中获取所述粒子特效资源并在所需位置播放。

本步骤中,若所述资源缓存池中有所述待播放的粒子特效对应的粒子特效资源,与现有技术需要克隆创建粒子特效实例不同,本发明实施例无需创建粒子特效实例,而是从所述资源缓存池中获取所述粒子特效资源并在所需位置播放。由于此处是在新的位置(相对于粒子特效资源的原有播放位置)上重新播放粒子特效,为方便实现该效果,可调用粒子系统的api(applicationprogramminginterface,应用程序编程接口)接口,使粒子特效在所需位置上播放。该api接口例如可以为particlesystem.emit(intcount),具体可参考链接:https://docs.unity3d.com/scriptreference/particlesystem.emit.html。

需要说明的是,本发明实施例中,粒子特效优选是一次性播放的,不会循环,也不会在播放中被终止的粒子特效,此类粒子特效在游戏中占比较大(70%左右),并且经常会需要同时创建多个粒子特效实例,通过本发明实施例的粒子特效资源共享技术,能够极大提高游戏流畅性。相对来说,有些粒子特效可能需要循环持续播放(例如下雨效果),或是会在播放中被终止(例如王者荣耀游戏中王昭君的大招可以被打断),对于这两种粒子特效,数量相对较少,通常不会存在需要同时创建多个粒子特效实例的情况,故可以暂时不采用本发明实施例的方案(或是在其粒子特效资源上增设不可共享标识)。

本发明实施例提供的unity中粒子特效创建方法,首先获取待播放的粒子特效,然后确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源,最后若所述资源缓存池中有与所述待播放的粒子特效对应的粒子特效资源,则从所述资源缓存池中获取所述粒子特效资源并在所需位置播放。这样,通过确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源,从而对于相同的粒子特效,可共享使用对应的粒子特效资源,无需创建众多粒子特效实例,极大减少了粒子特效实例的创建数量,减少了cpu和内存的占用,极大提高游戏流畅性。

另一方面,本发明实施例提供一种unity中粒子特效创建装置,如图3所示,该装置可以包括:

获取模块11,用于获取待播放的粒子特效;

确定模块12,用于确定资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源;

获取及播放模块13,用于若所述资源缓存池中有与所述待播放的粒子特效对应的粒子特效资源,则从所述资源缓存池中获取所述粒子特效资源并在所需位置播放。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

优选的,如图4所示,所述确定模块12,可以包括:

判断子模块121,用于判断所述待播放的粒子特效的粒子特效资源是否有可共享标识,其中,所述可共享标识用于指示粒子特效资源能够共享播放;

第一确定子模块122,用于若所述待播放的粒子特效的粒子特效资源有可共享标识,则确定所述资源缓存池中是否有与所述待播放的粒子特效对应的粒子特效资源。

优选的,如图4所示,所述确定模块12,还可以包括:

第二确定子模块123,用于若所述待播放的粒子特效的粒子特效资源没有可共享标识,则确定所述资源缓存池中是否有所述待播放的粒子特效的实例;

播放子模块124,用于若所述资源缓存池中有所述待播放的粒子特效的实例,则播放所述待播放的粒子特效的实例,若所述资源缓存池中没有所述待播放的粒子特效的实例,则创建所述待播放的粒子特效的实例并在所需位置播放。

优选的,所述播放子模块124,可以包括:

存储子单元,用于将创建的所述待播放的粒子特效的实例的粒子特效资源存储在所述资源缓存池中。

本发明实施例还提供一种电子设备,图5为本发明的电子设备一个实施例的结构示意图,可以实现本发明图1-2所示实施例的流程,如图5所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一方法实施例所述的方法。

处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-2所示实施例的描述,在此不再赘述。

该电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例所述的方法步骤。

本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一方法实施例提供的方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1