首先需要明确剧情系统的目标:
核心解决思路就是两个:
如同拍摄电影一样制作RPG游戏的剧情需要有不同的系统协作:
我们的目标就是,将剧情的配置方式完全参考电影剧本来做采用命令模式描述就是:
要实现上面这种基于命令的配置方式,需要实现以下内容:
这样一个导演剧本昰独立于所有系统的,只负责组织和操控其它系统;
而只需要在合适的时候执行上面的 StoryProgress,就可以做到通过特定的事件来触发特定的剧情
當然你需要注意一点,在播放剧情之前可能需要对当前游戏环境进行清理,例如网络游戏中隐藏其它玩家,隐藏其它不相关怪物等等。
而要开发相关的剧情编辑器的功能就是将编辑好的时间轴生成相关的StoryProgress的c#代码即可。
至此一个优雅的剧情系统就完成了
当然上面描述了这些,只解决了一个底层问题即如何组织一个剧情故事;
因此需要设计:主动触发剧情检测的观察点,系统的条件变量以及 满足哪些条件触发某个劇情相关配置。
主讲老师赵京宇多年的游戏特效笁作经验北京雅乐时空科技有限公司特效总监,主攻各大游戏引擎(Unity3d、Cocos2d)全流程开发 Unity3d/Flash/PS/3DM等,参加过很多游戏项目的特效制作《海贼王大冒险》 《问仙》《魔仙记Online》 《铁血大海战》《巨龙格斗》 《恐龙兄弟》 《TalkingData》 《艾达世界》 《PopStory》等等大型游戏的制作老师用他的实战经验帶来大家认识和学习游戏特效。
能暂停一些东西但是如果在update函數中持续改变一个物体的位置,这种位置改变貌似是不会受到暂停影响的
你们说的那种情况我暂时还没遇到过。
在Unity Answer上看到有人用这样的方法: