一种用于对象的状态切换系统和方法技术方案

技术编号:24852227 阅读:50 留言:0更新日期:2020-07-10 19:06
本发明专利技术实施例公开了一种用于对象的状态切换系统和方法,所述状态切换系统包括逻辑状态模块、衔接模块和动画模块,其中:所述逻辑状态切换模块,用于获取待切换逻辑状态,以及根据所述待切换逻辑状态进行逻辑状态的切换;所述衔接模块,封装有所述动画模块中的执行接口,用于转发所述逻辑状态模块和/或所述动画模块的事件;所述动画模块,用于进行动画切换。本发明专利技术实施例提供的状态切换系统使用衔接模块转发逻辑状态模块和/或动画模块的事件,实现了将逻辑状态切换模块和动画模块解耦,简化了逻辑状态切换层的代码开发复杂度及执行逻辑。

【技术实现步骤摘要】
一种用于对象的状态切换系统和方法
本专利技术实施例涉及计算机
,尤其涉及一种用于对象的状态切换系统和方法。
技术介绍
Unity目前主要通过动画状态机来播放动画,一个游戏对象通常需要一个逻辑管理器管理逻辑状态(移动,攻击等),需要一个动画状态机来播放逻辑状态对应的当前动画例如跑步、技能动画。逻辑管理器通常是一个循环,每一帧先更新逻辑状态,再更新动画状态,下一帧继续上述内容。当从一个逻辑状态切换到下一个状态时的流程如下:1、开始切换状态,记录下一个状态的Id,设置动画状态机的动画id,动画状态机开始做动画的融合过渡。2、逻辑管理器的循环中每一帧检动画状态机动画过渡是否完成,如果否则下一帧继续检测,直至完成。完成之后更新当前逻辑状态。3、更新下一个逻辑状态。由此可见,现有技术中逻辑状态切换时逻辑状态和动画状态相互影响,如果当动画过渡时记录id的变量被改变,或者动画状态机出现一些情况(例如被重置或者触发优先级更高的切换覆盖原来的过渡)会导致状态切换出现问题。其次,由于逻辑状态和动画状态的更新有时序状态,需要上层逻辑实现者对底层代码实现有本文档来自技高网...

【技术保护点】
1.一种用于对象的状态切换系统,其特征在于,包括逻辑状态模块、衔接模块和动画模块,其中:/n所述逻辑状态切换模块,用于获取待切换逻辑状态,以及根据所述待切换逻辑状态进行逻辑状态的切换;/n所述衔接模块,封装有所述动画模块中的执行接口,用于转发所述逻辑状态模块和/或所述动画模块的事件;/n所述动画模块,用于进行动画切换。/n

【技术特征摘要】
1.一种用于对象的状态切换系统,其特征在于,包括逻辑状态模块、衔接模块和动画模块,其中:
所述逻辑状态切换模块,用于获取待切换逻辑状态,以及根据所述待切换逻辑状态进行逻辑状态的切换;
所述衔接模块,封装有所述动画模块中的执行接口,用于转发所述逻辑状态模块和/或所述动画模块的事件;
所述动画模块,用于进行动画切换。


2.根据权利要求1所述的系统,其特征在于,所述衔接模块具体用于:
在检测到逻辑切换指令时,触发所述动画模块进行动画切换,并接收所述动画模块返回的切换完成状态;
将接收到的动画切换完成状态发送至所述逻辑状态切换模块。


3.根据权利要求1所述的系统,其特征在于,所述衔接模块具体用于:
在当前逻辑状态更新为所述待切换逻辑状态后,向所述动画模块发送动画结束指令,并接收所述动画模块发送的动画过渡完成状态;
将所述动画过渡完成状态发送至所述逻辑状态切换模块,以结束当前逻辑状态。


4.根据权利要求1所述的系统,其特征在于,所述逻辑状态切换模块具体用于:
获取逻辑状态队列中队首的逻辑状态作为待切换逻辑状态。


5.一种状态切换方法,由权利要求1-4任一项所述的状态切换系统执行,其特征在于,包括:
逻辑状态切换模块从逻辑状态队列中获取待切换逻辑状态;
逻辑状态切换模块通过衔接模块触发动画模块进行动画切换,并接收所述衔接模块返回的动画切换完成状态;
逻辑状态切换模块将当前逻辑状态更新为所述待切换逻辑状态,完成状态的切换。

<...

【专利技术属性】
技术研发人员:程思鹏
申请(专利权)人:上海米哈游天命科技有限公司
类型:发明
国别省市:上海;31

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

1